70 votes

Vérifiez la connexion internet d'INTENT

Y a-t-il un Android Intent ACTION_XXX qui me prévient lorsqu'une connexion Internet est disponible ?

Je veux instancier un BroadcastReceiver qui notifie mon application lorsqu'un utilisateur active la connexion Internet (par wifi, par GSM, etc.)

Quelqu'un peut-il m'aider ?

1voto

Zumry Mohamed Points 31

Sous Android 7++, la réponse de @fedj ne fonctionnera pas mais vous pouvez enregistrer le récepteur de diffusion de manière programmatique.

Les applications ciblant Android 7.0 (API niveau 24) et plus ne reçoivent pas les diffusions CONNECTIVITY_ACTION si elles déclarent le récepteur de diffusion dans leur manifeste. Les applications recevront toujours les diffusions CONNECTIVITY_ACTION si elles enregistrent leur récepteur de diffusion avec la fonction Context.registerReceiver() et que ce contexte est toujours valide.

0voto

kbrackson Points 11

Je lirais les docs mis à jour pour nougat + , car l'intention est dépréciée en raison du # d'appareils, les infos réseau seules ne sont pas suffisantes. J'utiliserais le gestionnaire de connectivité ( action de connectivité, ajouter des variables là-bas) commandes et vars là-bas, parce que la plupart a changé dans la dernière année seulement, et sur pour les tests, activer les données cellulaires toujours actives, la journalisation verbale et le handover agressif, utiliser le filtre wlan si nécessaire :

https://developer.Android.com/reference/Android/net/ConnectivityManager.html#CONNECTIVITY_ACTION

0voto

Usama El Gindy Points 150

**Vous pouvez placer cette ligne de code dans les méthodes d'aide et l'appeler lorsque vous voulez vérifier la connexion Internet.

public static class InternetState {
    static ConnectivityManager cm;

    static public boolean isConnected(Context context) {
        try {
            cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        } catch (NullPointerException e) {

        }

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
        return isConnected;
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X