2009-10-13 19 views
30

Me gustaría comprobar desde mi aplicación si el dispositivo tiene conectividad WiFi, pero para hacerlo, primero debo encontrar la manera de obtener "WiFi" en el emulador. Sólo va a Configuración -> Conexiones inalámbricas -> Wifi dice No se puede iniciar WiFi, mientras logcat dice:Android: simular WiFi en el emulador?

E/WifiService( 566): Failed to load Wi-Fi driver. 
D/SettingsWifiEnabler( 695): Received wifi state changed from Unknown to Enabling 
D/SettingsWifiEnabler( 695): Received wifi state changed from Enabling to Unknown 

¿Cómo se puede simular la conectividad Wi-Fi en el emulador?

Respuesta

7

Dado que esta parece ser una pregunta popular, seguiré adelante y añadiré una respuesta actualizada. El SDK aún no es compatible con la emulación WiFi, pero Genymotion tiene WiFi por defecto, por lo que puede usarlo para desarrollar/probar aplicaciones con funcionalidad WiFi específica.

+2

Correcto, pero solo en la versión con licencia atm. –

+0

actualización de 2017, ahora está disponible en el [API 25 emulator] (https://developer.android.com/studio/releases/emulator.html#26-1-3) cuando deshabilita la aceleración de hardware - –

19

Actualmente, aunque puede usar la conexión a Internet de su computadora en el emulador, no es confiable usarla para simular Wi-Fi. El WifiManager se confunde cuando cambia/desea probar su estado de conectividad.

Incluso en Android 1.5, hubo algunos problemas con él (Issue 2571 - android), y si bien puede usar su Internet para simular conexiones HTTP y descargar datos, un mejor control de la conectividad Wi-Fi debería hacerse con un dispositivo.

3

Si no tiene un dispositivo real, creo que la mejor manera es instalar android-x86 o utilizarlo en el usb en vivo. No hay diferencias entre Android y Android-x86.

Y android-x86 compatible con wi-fi. para que pueda instalar su aplicación y ejecutarla.

+0

bien ... pero ¿funciona como es? Me refiero a simular wifi desde ese emulador (virtualbox)? : D – gumuruh

+0

A partir de hoy, no es así. –

3

En teoría, Linux (el kernel subyacente de Android) tiene el controlador mac80211_hwsim, que simula WiFi. Se puede usar para configurar varios dispositivos WiFi (un punto de acceso y otro dispositivo WiFi, etc.) que constituirían una red WiFi.

Es útil para probar programas WiFi en Linux. Posiblemente, incluso bajo user-mode linux u otras "cajas" virtuales aisladas con Linux.

En teoría, este controlador podría usarse para pruebas en los sistemas Android donde no tiene un dispositivo WiFi real (o no quiere usarlo), y también en algún tipo de emulador de Android. Quizás, uno puede administrar el uso de este controlador en android-x86, o - para probar - en android-x86 ejecutarse en VirtualBox.

2

Probablemente ningún sustituto para las pruebas en un dispositivo real, pero si usted está buscando un caso de prueba lo suficientemente bueno en el emulador de dar una oportunidad Fake Wifi Connection:

Hace aplicaciones piensan que son el wifi no importa qué la conexión subyacente es.

descargo de responsabilidad: Escribí esto.
Funciona interceptando las llamadas de ConnectivityManager/WifiManager (usa Xposed). Intenté cubrir la mayoría de ellos, por lo que hace un trabajo bastante bueno, sin embargo, siempre es posible que falte algo (si encuentras algo, házmelo saber).

4

Android emulator wifi

A partir de la revisión 26.1.3, el emulador de Android ahora es compatible con la conexión Wi-Fi a una imagen Turrón (API 25).

Compatibilidad agregada para Wi-Fi en algunas imágenes del sistema (actualmente solo API de nivel 25). Un punto de acceso llamado "AndroidWifi" está disponible y Android se conecta automáticamente a él.

Fuente: https://developer.android.com/studio/releases/emulator.html#26-1-3

Puede comprobar la versión de su emulador por entrar en la configuración del emulador (tres puntos)> Ayuda> Acerca de. También tenga en cuenta que si se creó un AVD antes de que se lanzara la versión 26.1.3, tendrá que volver a crear su AVD. Leí en algún lado que borrar datos también podría funcionar, pero no lo intenté.

+0

que necesitaba desactivar aceleración de hardware para que esté disponible. Al momento de escribir, establezca 'Emulated Performance Graphics' en' Software - GLES 2.0'. –

Cuestiones relacionadas