ConnectivityManager getActiveNetworkInfo exception de pointeur null
Je vois parfois exception de pointeur null dans le gestionnaire de connectivité. À partir de l'intention du service je vérifier l'état du réseau par isOnWIFI(ce). Exception se produit à la ligne cm.getActiveNetworkInfo(). C'est étrange car j'ai vérifier la valeur null avant de m'appeler.
Remarque: les Autorisations sont définies.
public static boolean isOnWIFI(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm != null
//here occurs NullPointerException
&& cm.getActiveNetworkInfo() != null
&& ((cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null && cm.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).isConnected()));
}
Pensées, pourquoi est-ce arrivé? Je ne peux pas le corriger parce que c'est seulement occasionnel à partir des rapports de bugs. Seule solution que je vois est de le mettre en essayer bloc catch. Merci.
Les autorisations sont définies?
<uses-permission android:name="android.la permission.INTERNET" /> <uses-permission android:name="android.la permission.ACCESS_NETWORK_STATE" />
Je ne suis pas sûr, mais vous pouvez vérifier avec l'ajout d'un permission android.la permission.ACCESS_WIFI_STATE
Comme vous pouvez le voir, il ne parvient pas à cm.getActiveNetworkInfo(). Mon problème n'est pas que je ne peux pas vérifier wifi. Le problème est qu'il est parfois exception de pointeur null.
Avez-vous trouver une réponse à cela? J'obtiens le même problème et j'ai aussi un null vérifier. Chaque réponse que je vois sont totalement à côté de la question...
<uses-permission android:name="android.la permission.INTERNET" /> <uses-permission android:name="android.la permission.ACCESS_NETWORK_STATE" />
Je ne suis pas sûr, mais vous pouvez vérifier avec l'ajout d'un permission android.la permission.ACCESS_WIFI_STATE
Comme vous pouvez le voir, il ne parvient pas à cm.getActiveNetworkInfo(). Mon problème n'est pas que je ne peux pas vérifier wifi. Le problème est qu'il est parfois exception de pointeur null.
Avez-vous trouver une réponse à cela? J'obtiens le même problème et j'ai aussi un null vérifier. Chaque réponse que je vois sont totalement à côté de la question...
OriginalL'auteur vandzi | 2013-05-06
Vous devez vous connecter pour publier un commentaire.
êtes-vous Vérifié l'api qu'ils sont mentionnés si il n'y a pas de connexions actives, ils sont tout simplement retourner null je pense que c'est ur problème.
http://developer.android.com/reference/android/net/ConnectivityManager.html
#getActiveNetworkInfo()
OriginalL'auteur android_dev
android_dev est droit. Le problème dans votre code vient de
cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()));
Oui! vous vérifiez
cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null
avant, mais en appelantgetNetworkInfo()
un deuxième temps, android va et va chercher le Réseau info un deuxième temps, cette fois, il n'a pas rencontre un réseau actif de retourner null cette deuxième fois.Le truc, c'est pas parce que vous avez appelé
getNetworkInfo()
un millième de seconde avant de et de na pas obtenir une valeur null signifie que vous n'allez pas obtenir une milliseconde aprèsOriginalL'auteur user3597165
http://developer.android.com/training/basics/network-ops/managing.html
avez-vous réglé le code ? Où à partir de votre activité, vous êtes à l'appel de cette méthode? Votre contexte est nulle aussi loin que je m'en doutais parce qu'il n'y a pas de problème dans le code.
Peut ConnectivityManager jamais être nulle? Avons-nous vraiment besoin d'un chèque de cm!= null ? Quels cas peut-il être nul?
Cette réponse ne traite pas le problème à tous.
OriginalL'auteur Haris Aftab
getActiveNetworkInfo
retourne null si aucune il n'y a pas de connexion par défaut disponibles que par l'docs >> getActiveNetworkInfo .Donc ce que je vous conseille de faire est de vérifier les réseaux, chacun individuellement ci-dessouspuis vérifier si elles sont disponibles
OriginalL'auteur kevthanewversi
Lorsque je travaillais avec les services, cela a résolu mon problème.. Avant j'étais juste de l'aide !info.isConnected() mais ce n'était pas assez
OriginalL'auteur Miguel
Je viens de faire un modèle avec ce type de problème , maintenant il fonctionne bien. Vous pouvez essayer ce code , je l'ai essayé sur de nombreux appareils et il n'y a pas de problème.
getActiveNetworkInfo()
problème . Avant j'ai essayégetAllNetworkInfo()
et je ne comprends pas ce qui est mal, maisgetAllNetworkInfo()
de travail est stupide sur certains appareils.ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] netInfo = cm.getAllNetworkInfo(); for(NetworkInfo nix : netInfo) { if(nix.getType() == ConnectivityManager.TYPE_MOBILE) si (nix.isConnected()){ isAnyNetworkAvailableType = "MOBILE";
C'est fou , quand je démarre l'appareil et de l'internet n'est pas sur l'application fonctionne bien. Quand je tourne sur internet l'application est encore bonne, il détecte un changement, mais si je tourne internet de l'application ne reconnaît pas le changement. Également de détecter les changements lorsque vous allumez mais pas éteint .
OriginalL'auteur Vinko Rajic