Android N pas envoyer android.net.conn.CONNECTIVITY_CHANGE de diffusion?
J'ai défini un récepteur dans un bac à sable Android N application:
<receiver
android:exported="true"
android:name="com.sandboxapplication.NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
C'est plutôt simple:
public class NetworkReceiver extends BroadcastReceiver {
private static final String TAG = NetworkReceiver.class.getName();
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Received Network Change event.");
}
}
Ce récepteur fonctionne bien si dans mon construire.gradle fichier de mon targetSdkVersion est de 23. Cependant, si j'ai mis mon targetSdkVersion à 24 ans, le récepteur ne reçoit jamais de quoi que ce soit. En fait, si je place un debug point de rupture dans mon récepteur Android Studio me donne l'indication visuelle qu'il semble que la classe n'est jamais la même chargé en mémoire.
Ai-je raté quelque chose de très basique dans l'Android N la documentation? Est-il un nouveau moyen de détecter la connectivité des événements de changement?
- Double Possible de ConnectivityManager.CONNECTIVITY_ACTION obsolète
Vous devez vous connecter pour publier un commentaire.
Applications qui ciblent Android
N (Nougat)
ne reçoivent pasCONNECTIVITY_ACTION
émissions, même si elles ont les entrées du manifeste pour demander une notification de ces événements. Les applications qui sont en cours d'exécution peut encore écouterCONNECTIVITY_CHANGE
sur leur thread principal si ils demander une notification avec unBroadcastReceiver
.Pour voir ce qui a changé dans
Android N (Nougat)
. Veuillez consulter le lien ci-dessous.Android N Changements De Comportement
Utiliser ce code pour enregistrer récepteur dans votre
Activity
ou dansApplication
classeOù
NetworkConnectionReceiver
est une classe étendue parBroadcastReceiver
. Il suffit d'ajouter cette classe dans votre application et d'effectuer des actions dansonReceive(Context context, Intent intent)
méthode.Remarque: Si vous vous inscrivez ce récepteur dans une
Activity
, n'oubliez pas d'annuler son inscription.Pendant ce temps
ConnectivityManager.CONNECTIVITY_ACTION
était obsolète:Donc
registerDefaultNetworkCallback
doit être utilisée: