[英]how define Broadcastreceiver with CONNECTIVITY_CHANGE?
[英]BroadcastReceiver for CONNECTIVITY_CHANGE, WIFI_STATE_CHANGED and PROVIDER_CHANGED
我有一個MyBroadcastReceiver
設置,如下所示:
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PROVIDER_CHANGED" />
</intent-filter>
</receiver>
如您所見,它“監聽”了CONNECTIVITY_CHANGE
, WIFI_STATE_CHANGED
和PROVIDER_CHANGED
。
前兩個運行良好,並且我的BroadcastReceiver
被調用。 但是,永遠不會在PROVIDER_CHANGED
調用它(當我在Android 5.1上禁用位置信息時)。
MyBroadcastReceiver
目前大致是這樣的:
@Override
public void onReceive(final Context context, final Intent intent) {
final String action = intent.getAction();
Log.d("ACTION", action);
// ...
}
我嘗試了不同的AndroidManifest.xml
配置,但從未廣播過PROVIDER_CHANGED
。
我究竟做錯了什么?
糟糕,自動完成功能使我使用了錯誤的IntentFilter
操作。
<action android:name="android.location.PROVIDERS_CHANGED" />
當然應該使用android.intent.action.PROVIDER_CHANGED
而不是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.