BroadcastReceiver用于CONNECTIVITY_CHANGE,WIFI_STATE_CHANGED和PROVIDER_CHANGED

时间:2015-05-06 08:07:11

标签: android android-manifest android-broadcast

我有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广播。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

糟糕,自动完成让我使用了错误的IntentFilter操作。

 <action android:name="android.location.PROVIDERS_CHANGED" />

应该使用,当然不是android.intent.action.PROVIDER_CHANGED