27 votes

Comment désactiver/activer le réseau, passer en Wifi dans l'émulateur Android ?

Je travaille sur une bibliothèque de notifications push pour Android ( http://deaconproject.org/ ) qui doit prendre des mesures en cas d'interruption ou de modification de la connectivité réseau, c'est-à-dire qu'il doit réinitialiser une connexion au serveur ou mettre en pause son fonctionnement jusqu'à ce que la connectivité réseau soit disponible. Cela semble fonctionner correctement en utilisant un Android BroadcastReceiver pour "Android.net.ConnectivityManager.CONNECTIVITY_ACTION".

Mon problème est de tester la bibliothèque - je voudrais tester automatiquement la réponse de la bibliothèque à une connexion réseau interrompue, ou à une transition de 3G à WiFi, dans diverses conditions de configuration. Le problème est que je ne veux pas m'asseoir avec l'émulateur et appuyer sur F8 toute la journée.

Existe-t-il un moyen de manipuler de manière programmatique les connexions réseau sur Android à partir d'un test jUnit sans avoir recours au mode avion ? J'ai déjà essayé d'envoyer des commandes à l'émulateur via la console, de manipuler le mode GSM, etc., mais alors que l'état du téléphone change à l'écran, la connexion Internet reste active.

7voto

Igor Points 131

Faites un clic droit sur le projet dans le panneau "Project Explorer", choisissez "Run As" puis "Run Configurations".

Dans la partie gauche de la fenêtre affichée modalement, choisissez "Application Android" et dans la partie droite de la même fenêtre, choisissez l'onglet "Cible".

En bas de la fenêtre, dans la section "Paramètres de lancement de l'émulateur", vous disposez d'une pléthore d'options concernant la connectivité Internet.

J'espère que cela vous a aidé.

Igor

6voto

Sander Versluys Points 13953

J'ai trouvé le Outils de développement Android application très utile.

Il vous permet de manipuler des paramètres importants du système, comme la connectivité du réseau. Il vous permet même de définir un intervalle pendant lequel il active et désactive automatiquement le wifi, ce qui vous permet de tester vos récepteurs de diffusion liés au réseau.

Si vous souhaitez installer l'application Dev Tools sur un véritable dispositif de développement réel, vous pouvez copier l'application depuis votre émulateur puis l'installer sur votre appareil à l'aide d'ADB. Pour copier l'application à partir d'un émulateur en cours d'exécution, exécutez

adb -e pull /system/app/Development.apk ./Development.apk

Cela copie le fichier .apk dans le répertoire actuel. Ensuite, installez-le sur votre appareil connecté avec :

adb -d install Development.apk

enter image description here

4voto

Chris Points 1228

Vous pouvez aussi regarder la vue de contrôle de l'émulateur dans Eclipse. Je n'ai pas beaucoup de chance d'arriver à ce qu'elle tue mes données pour le moment, mais ça semble être le cas. debe .

alt text

2voto

James Koch Points 278

Voir aussi cette question qui a un lien vers un défaut ouvert d'Android enregistré en 2009. Obtenez des votes sur ce chiot !

2voto

Jeff Axelrod Points 8946

Malheureusement, il n'existe aucun moyen de désactiver réellement l'accès au réseau à partir d'un test unitaire de manière programmatique. J'ai déposé un Demande d'amélioration d'Android pour ce numéro.

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