Double Possible:
Comment vérifier l'accès à internet sur Android? InetAddress jamais délais d'attenteJ'ai besoin de détecter si l'appareil Android est connecté à Internet.
L'
NetworkInfo
classe fournit une non-méthode statiqueisAvailable()
qui semble parfait.Le problème est que:
NetworkInfo ni = new NetworkInfo(); if (!ni.isAvailable()) { // do something }
met cette erreur:
The constructor NetworkInfo is not visible.
Pari sûr est qu'il existe une autre classe qui retourne un
NetworkInfo
objet. Mais je ne sais pas qui.
- Comment faire pour obtenir l'extrait ci-dessus du code de travail?
- Comment pourrais-je me suis trouvé les informations dont j'avais besoin dans la documentation en ligne?
- Pouvez-vous suggérer une meilleure façon pour que ce type de détection?
Réponses
Trop de publicités?L' getActiveNetworkInfo()
méthode de ConnectivityManager
renvoie un NetworkInfo
instance représentant la première connexion de l'interface réseau, il peut se trouver ou null
si aucun si les interfaces sont connectées. Vérifier si cette méthode renvoie null
devrait être assez pour dire si une connexion internet est disponible.
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
Vous aurez également besoin de:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
dans votre manifeste android.
Edit:
Notez que le fait d'avoir une interface réseau active ne garantit pas qu'un service en réseau est disponible. Les réseaux de questions, le temps d'arrêt du serveur, signal faible, des portails captifs, les filtres de contenu et la comme peut tout empêcher votre application à partir d'une connexion à un serveur. Par exemple, vous ne pouvez pas dire à coup sûr si votre application peut atteindre Twitter jusqu'à ce que vous recevez une réponse valide à partir du service Twitter.
Étape 1 : Créer une classe AppStatus dans votre projet (vous pouvez donner un autre nom aussi). Alors s’il vous plaît collez les lignes ci-dessous dans votre code :
Étape 2 : Maintenant pour vérifier si le périphérique dispose d’une connectivité réseau puis il suffit d’ajouter cet extrait de code où que vous voulez vérifier...
Aussi une autre remarque importante. Vous devez définir android.permission.ACCESS_NETWORK_STATE
dans votre AndroidManifest.xml pour que cela fonctionne.
_ comment pourrais-je me suis trouvé les informations dont j'avais besoin dans la documentation en ligne?
Vous avez juste à lire la documentation des classes correctement et vous trouverez toutes les réponses que vous cherchez. Consultez la documentation sur ConnectivityManager. La description indique quoi faire.
Le getActiveNetworkInfo() la méthode de ConnectivityManager renvoie une NetworkInfo instance représentant le premier réseau connecté interface il peut trouver ou null si aucune si les interfaces sont connectées. Vérifier si cette méthode renvoie null devrait être assez pour dire si un la connexion internet est disponible.
private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null; }
Vous aurez également besoin de:
dans votre manifeste android.
Edit:
Notez que le fait d'avoir une interface réseau active ne garantit pas qu'un notamment service en réseau est disponible. Les réseaux de questions, serveur les temps d'arrêt, signal faible, des portails captifs, les filtres de contenu et la comme peut tout empêcher votre application à partir d'une connexion à un serveur. Par exemple, vous ne pouvez pas dire à coup sûr si votre application peut atteindre Twitter jusqu'à ce que vous recevez un réponse valide à partir du service Twitter.
getActiveNetworkInfo() ne devraient pas ne jamais donner la valeur null. Je ne sais pas ce qu'ils avaient en tête lorsqu'ils sont venus avec. Il devrait vous donner un objet toujours.