studio para nox funciona emulator emulador descargar android android-emulator

para - Cómo simular la pérdida total de la red en el emulador de Android



emulador de android para android (5)

Estoy intentando escribir una aplicación que necesita saber cuando no hay una conexión de red IP disponible. Estoy usando el evento de transmisión android.net.conn.CONNECTIVITY_CHANGE junto con ConnectivityManager para reaccionar a los cambios de estado para lograr esto, pero tengo problemas para probar mi configuración en el emulador.

He probado el modo de vuelo y presionando F8 para deshabilitar la "Red celular", pero incluso con ambos activados, la aplicación aún "ve" la red subyacente.

¿Alguien ha logrado encontrar una manera de simular una falta total de acceso a la red?


Experimenté que después de presionar F8, un ícono en la barra de estado muestra que no hay conectividad, pero si intentas buscarlo funciona. Tal vez tenga algo que ver con este error abierto: error 3838


Hay Perspectiva DDMS en Eclipse, donde puede manipularse con la velocidad de conexión y la disponibilidad (en la pestaña Control de emulador). Si no funciona para usted, puedo sugerirle que active la red de su sistema operativo o incluso que desconecte el cable :)


Prefiero el comando svc

svc wifi disable svc wifi enable

sobre el comando netcfg

netcfg mlan0 up/down

Porque cuando rechazas el wifi con este último, se recuperará después de un tiempo, lo cual no he descubierto por qué.


Vaya, quise publicar esta respuesta (http://.com/questions/3400109/simulate-wireless-network-in-emulator/6078544#6078544) aquí.

Aquí está la solución que se me ocurrió para simular la pérdida total de conexión de red en el emulador:

Escriba el siguiente script y asígnele el nombre "nonetwork.sh"

netcfg eth0 down sleep 10 netcfg eth0 up netcfg eth0 dhcp

Suba el siguiente script al emulador a través de este comando:

adb push nonetwork.sh /data/local/nonetwork.sh

Cambiar los permisos

adb shell chmod 700 /data/local/nonetwork.sh

Ejecutarlo

adb shell /data/local/nonetwork.sh

Mientras la red no funciona en el dispositivo, perderá el acceso a adb, pero una vez que se restablezca la conexión, volverá a funcionar. Espero que esto ayude.


isAvailable : sin esto isConnected puede devolver TRUE cuando WIFI está deshabilitado. Consulte el código a continuación y esta URL para obtener más información http://developer.android.com/guide/developing/tools/emulator.html

ConnectivityManager conMgr = ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); if ( connMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ) { //notify user you are online } else if ( conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) { //notify user you are not online Toast.makeText(getBaseContext(),"Please Check Your Internet Connection and Try Again",Toast.LENGTH_SHORT).show(); }

Agregue la solicitud de permiso android.permission.ACCESS_NETWORK_STATE a su manifiesto de aplicación:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />