Dernière mise à jour sur l'activation et la désactivation de données mobiles par programmation
Bien que c'est un "double", l'actuel réponses ne sont pas à jour et, surtout, ne s'appliquent plus. J'ai pensé qu'il serait bon de fournir une mise à jour de ressources ici, si possible, de sauver les gens, comme je viens de le faire, à la recherche de cette question.
J'ai cherché sur google pour voir les dernières informations sur la façon d'être en mesure d'activer et de désactiver les données mobiles à partir d'une application (si le wifi n'est pas disponible).
C'est l'une des dernières choses que je peux trouver:
Saviez-vous que vous ne pouvez plus Activer/Désactiver les Données sur la sucette à partir d'un widget?
Il n'y est une réponse à cette question, je cite:
Il n'a jamais été une API pour cela. Les développeurs ont été à l'aide d'une solution de contournement en appelant la méthode via Réflexions. Google n'était proche de cet "exploit".
Il y a aussi cette discussion:
Remplacement pour setMobileDataEnabled() de l'api
Qui est Feb 2015.
Il y a de ces questions ici:
Comment faire pour désactiver les Données Mobiles sur Android
Cela a été demandé en 2010 et la dernière réponse a été mis à jour avec un liner sur Déc 2014.
Activer/désactiver la connexion de données dans android par programmation
Et ce, de la accepté de répondre en 2012.
Les plus récentes sur cette question?
Peut-il encore faire?
- stackoverflow.com/questions/26539445/...
- Ne ressemble pas c'est plus possible. Au mieux, vous pourriez détecter si c'est sur ou pas, puis invite l'utilisateur à activer en les prenant à la page de paramètres
- stackoverflow.com/a/27198925/2378691 Aller à la mise à jour 3 sur cette réponse. Il permet d'activer/désactiver les données mobiles sur lollipop.
Vous devez vous connecter pour publier un commentaire.
- Je utiliser une solution de contournement qui ne fonctionne que pour les enracinée téléphones.
La
setMobileDataEnabled
méthode a été retiré de laConnectivityManager
mais deux méthodesgetDataEnabled
etsetDataEnabled
ont été ajoutés à laTelephonyManager
pour cette fonctionnalité.Mais vous devez ajouter cette autorisation (MODIFY_PHONE_STATE) pour le fichier de Manifeste autrement, vous obtiendrez une SecurityException.
Il l'habitude de travailler sur non-enracinée téléphone comme ils ont ajouté
MODIFY_PHONE_STATE
vérification d'autorisation. Cette autorisation n'est donnée du système ou de la signature des applications consultez-ici.Vérifier le code ci-dessous à partir de PhoneInterfaceManager:
Sauf si vous avez un téléphone enracinée je ne pense pas que vous pouvez activer et désactiver les connexions de données par programme parce que, pour ce faire, nous devons inclure MODIFY_PHONE_STATE l'autorisation qui est donnée uniquement à système ou de la signature des applications.
setMobileDataEnabled()
méthode n'est plus exigible par la réflexion. Il est appelable depuis Android 2.1 (API 7) à Android 4.4 (API 19) par l'intermédiaire de la réflexion, mais aussi d'Android 5.0 et versions ultérieures, même avec les téléphones enracinées, lasetMobileDataEnabled()
méthode n'est pas appelable.Avance rapide jusqu'à la fin de 2018...
La réponse courte est qu'il n'est plus autorisé à activer/désactiver les données mobiles par programmation. Voici la solution que j'utilise tout le temps.
Ce code ouvre système d'utilisation des données les paramètres de l'écran, où l'utilisateur peut désactiver les données mobiles manuellement.
Méthode Facile.