Je veux que mon application vérifie si "le mode Network de données" ou "Données mobiles" est activé, même s'il n'est pas actif actuellement. En d'autres termes, je dois vérifier si l'application encouragera potentiellement des frais de données mobiles, même si le téléphone est actuellement connecté via WiFi.
Par googling j'ai trouvé le code suivant qui vérifie si "Données mobiles" est "active". p> Le problème avec ce code est que si wifi est actif le problème Les données mobiles ne sont pas signalées comme actives, même si elle est commutée sur ON. P> peut être modifié pour déterminer si les données mobiles sont "activées" et donc potentiellement actives, plutôt que comme avec ce code s'il est le mode de connexion actuellement actif? p> p>
4 Réponses :
Essayez ceci
Merci pour la suggestion; Cependant, ce code renvoie true si WiFi ou une connexion de données mobiles est disponible. J'essaie de détecter spécifiquement si les données mobiles sont activées (indépendamment de la connexion WiFi).
Veuillez regarder ce code: (Code d'une de mes applications publiées sur le Play Store)
private static boolean isAPNEnabled(Context paramContext) { try { NetworkInfo networkInfo = ((ConnectivityManager) paramContext.getSystemService("connectivity")).getActiveNetworkInfo(); return networkInfo.isConnected(); } catch (Exception e) { return false; } }
Merci pour la suggestion; Cependant, ce code renvoie true si WiFi ou une connexion de données mobiles est disponible. J'essaie de détecter spécifiquement si les données mobiles sont activées (indépendamment de la connexion WiFi).
Essayez ceci, cela fonctionne dans la plupart des cas.
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); boolean isConnected = activeNetwork != null && activeNetwork.isConnected(); if (!isConnected) { return false; }
Remarque: getnetworkinfo () code> est obsolète depuis l'API 23.
Je ne suis pas sûr que cela fonctionnera sur tous les appareils, mais cela fonctionne sur certains que j'ai essayé: Il semble renvoyer le résultat correct même si j'ai un wifi actif connexion. p> p>
Voir ceci: Stackoverflow.com/ Questions / 3644144 / ...
Voir ceci: Stackoverflow.com/ Questions / 3644144 / ...
Avez-vous trouvé une solution à cela?