广播接收器无法正常工作

时间:2013-08-03 11:14:38

标签: java android location broadcastreceiver

我希望在应用程序中收到有关启用/停用位置提供程序的信息,例如NETWORKGPS等。我创建简单的BrodcastReciver

public class TestReciver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {

        Log.v("LOCATION_CHANGE_RECEIVER", "PROVIDER UPDATE");
    }
}

并在AndroidManifest.xml

中注册
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
      <application
                android:label="@string/app_name"
                android:icon="@drawable/ic_launcher"
                android:allowBackup="true"
                android:debuggable="true">
        <receiver android:name=".receiver.TestReciver">
            <intent-filter>
                <action android:name="android.intent.action.PROVIDER_CHANGED"/>
            </intent-filter>
        </receiver>

但是当我尝试打开/关闭GPS时,BrodcastReceiver没有收到任何信息。

1 个答案:

答案 0 :(得分:2)

将您的意图过滤器更改为android.location.PROVIDERS_CHANGED

<receiver android:name=".receiver.TestReciver"> 
    <intent-filter> 
        <action android:name="android.location.PROVIDERS_CHANGED" /> 
    </intent-filter> 
</receiver>