簡體   English   中英

CONNECTIVITY_CHANGE,WIFI_STATE_CHANGED和PROVIDER_CHANGED的BroadcastReceiver

[英]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_CHANGEWIFI_STATE_CHANGEDPROVIDER_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM