2015-05-06 4 views
0

У меня есть MyBroadcastReceiver установки следующим образом:BroadcastReceiver для CONNECTIVITY_CHANGE, WIFI_STATE_CHANGED и PROVIDER_CHANGED

<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 трансляцию.

Что я делаю неправильно?

+0

Если вы установили ' ' в соответствующем фильтр-замыслах, это поможет? – sschrass

+0

@SatelliteSD какой хост я должен поставить тогда для 'PROVIDER_CHANGED'? – shkschneider

+0

@SatelliteSD добавление '' не работает – shkschneider

ответ

1

К сожалению, автозаполнение сделало меня неправильным IntentFilter действий.

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

Следует использовать, а не android.intent.action.PROVIDER_CHANGED конечно.

+0

Да, это работает, когда приложение находится вокруг, вы пробовали его, когда приложение было убито/закрыто? Coz, в моем случае это не работает, когда приложение убито/закрыто. –

Смежные вопросы