5

我正在尝试创建一个广播接收器来侦听系统设置的任何更改以更新 UI。

我以这种方式在我的android清单上的intent-filter中编写了一系列动作:

<receiver android:name=".Receiver_OnSettingChange">
    <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action android:name="android.intent.action.AIRPLANE_MODE" />
            <action android:name="android.media.RINGER_MODE_CHANGED" />
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
            <action android:name="android.intent.action.BATTERY_CHANGED" />
            <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />
            <action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED" />
            <action android:name="com.android.internal.telephony.MOBILE_DATA_CHANGED" />
            <action android:name="com.android.settings.GPS_STATUS_CHANGED" />
            <action android:name="android.nfc.action.ADAPTER_STATE_CHANGE" />
            <action android:name="android.location.PROVIDERS_CHANGED" />
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="com.android.sync.SYNC_CONN_STATUS_CHANGED" />                 
            <action android:name="android.intent.action.MEDIA_SCANNER_FINISHED" />
            <action android:name="android.intent.action.MEDIA_SCANNER_STARTED" />
            <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
            <action android:name="android.intent.action.MEDIA_EJECT" />
            <action android:name="android.intent.action.MEDIA_MOUNTED" />
    </intent-filter>
    </receiver>

但我需要听每一个系统设置的变化(比如“自动旋转”从开到关,反之亦然,亮度从自动到关或其他任何东西)。

如果有我可以在清单中写的动作对我来说更好。

非常感谢

4

2 回答 2

2

确实有一种方法可以做到这一点,但它不是广播接收器。您需要使用观察者。我在音频控制中这样做,它几乎完美无缺。偶尔会发生一些我不会接受的改变,但这种情况很少见。这是一个链接,其中提供了有关如何实施的一些详细信息。

设置观察者

于 2012-11-13T18:24:33.893 回答
1

但我需要听每一个系统设置的变化(比如“自动旋转”从开到关,反之亦然,亮度从自动到关或其他任何东西)。

大多数没有Intent与他们相关的广播,抱歉。

于 2012-04-29T13:05:21.133 回答