L'une des fonctions de mon application envoie des données via Internet. Avant d'envoyer les données, je vérifie si une connexion existe:Créer un AVD Android sans connexion 3G
private boolean isConnected() {
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State val1 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State val2 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
return NetworkInfo.State.CONNECTED.equals(val1) || NetworkInfo.State.CONNECTED.equals(val2);
}
Cela a fonctionné parfaitement bien sur émulateur et quelques dispositifs réels J'ai testé sur. Puis j'ai reçu un rapport d'erreur du client, qui sur l'enquête s'est avéré être NullPointerException
sur getState
ligne pour TYPE_MOBILE
.
Apparemment, connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
a renvoyé null
sur le périphérique qui n'avait pas 3G (une tablette WiFi uniquement). Bien que j'ai testé sur un émulateur Nexus 7, je n'ai pas eu cette erreur. Par conséquent, ce qui m'intéresse est de créer un AVD qui n'a pas explicitement 3G (c'est-à-dire un AVD pour un périphérique WiFi uniquement) afin que je puisse étudier/tester de tels scénarios. Je n'ai rien trouvé dans les options de l'émulateur, mais peut-être que je cherche juste au mauvais endroit. Est-ce seulement possible?
J'ai essayé de désactiver les données 3G - cela simule la désactivation des données 3G dans le téléphone - et les informations de connexion ne sont pas nulles, à la place, son getState revient déconnecté. Clairement ce n'est pas ce que je suis après. –
Je ne peux même pas trouver où enlever hw.gsmModem. La dernière version du gestionnaire ADV ne me donne pas ces options. Je suppose, je pourrais traquer le xml pour l'avd, mais la désactivation de toutes les données de la cellule n'est pas une option pour moi. Je suppose que je vais juste ajouter des vérifications pour les nulls. –
Je n'ai pas mis à jour mon gestionnaire AVD, mais vous n'en avez pas besoin pour changer les options. Edité avec des instructions. – Geobits