Android getAllNetworkInfo() est Obsolète. Quelle est l'alternative?
Je veux utiliser le gestionnaire de Connectivité qui fournissent la méthode getAllNetworkInfo() pour la vérification de la disponibilité du réseau, dans Android. Cette méthode est dépréciée de l'API de niveau 23. Et Développeur doc est ce qui suggère d'utiliser getAllNetworks() à la place. J'ai essayé, mais counldn pas obtenir exactement les fonctionnalités que je recevais de mon ancien code. Svp quelqu'un pourrait me guider comment utiliser getAllNetworks() la méthode. Ci-dessous le code que j'utilise:
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null)
{
@SuppressWarnings("deprecation")
NetworkInfo[] info = connectivity.getAllNetworkInfo();
//use getAllNetworks() instead
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
return false;
}
- Double Possible de ConnectivityManager getNetworkInfo(int) obsolète
- Réponse ici - stackoverflow.com/questions/32547006/...
Vous devez vous connecter pour publier un commentaire.
Lorsque je mets à jour mon code obsolète et encore envie de support vers l'arrière de l'Api. j'utilise ceci :
De cette façon, chaque appareil utilisez le code approprié pour elle.
Exemple:
J'ai fait utils qui peuvent vous aider à vérifier:
il utilise l'ancienne ou la nouvelle API en fonction de l'exécution de la plate-forme :
Mise à jour:
Plus d'informations sur
@TargetApi
et@RequiresApi
:https://stackoverflow.com/a/40008157/421467
https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi
connMgr.getNetworkInfo(mNetwork)
pouvez jeter un NullPointerExcecption. Il m'est arrivé aujourd'hui, semble est levée par la méthode native à l'intérieur de la IConnectivityManager. La solution consisterait à try/catch présent à l'intérieur de votre pour de la boucle et de décider de secours sur la méthode dépréciée de ce Réseau spécifique.mNetwork
, peut-être bizarre appareil ne supporte pas certains de réseaux qui a été renvoyé pargetAllNetwokrs
?ACCESS_NETWORK_STATE
?Pour quelqu'un a besoin de Kotlin version (ci-Dessous est le même code avec Maor Hadad s)
Ce code est une méthode d'extension pour le Contexte.
Écrire ce code à tout kotlin fichier(.kt), alors vous pouvez utiliser cette méthode dans toute classe qui implémente Contexte(comme l'Activité).
Essayer cette
Essayer de code suivant:
Essayer celui-ci .C'est la façon la plus simple.