Habilitar WiFi en el emulador de Android

Respuestas:

126

Wifi no está disponible en el emulador si usa un nivel de API inferior al 25.

Cuando se utiliza un AVD con nivel de API 25 o superior, el emulador proporciona un punto de acceso Wi-Fi simulado ("AndroidWifi") y Android se conecta automáticamente a él.

Más información: https://developer.android.com/studio/run/emulator.html#wifi

salman khalid
fuente
1
Quiero probar el servidor VNC en el emulador y la aplicación del servidor vnc requiere Wifi o USB para conectarse a la red. entonces, ¿cuál es la mejor solución?
mfq
1
@mfq se ejecuta en un dispositivo real o usa una aplicación VNC de código abierto modificada para que no le importe.
Chris Stratton
11
no pierdas tu tiempo @salman khalid? ¿Es eso cierto? Desde la perspectiva de los programadores, lo que vi es que necesitamos minimizar el costo de comprar un dispositivo real si sucediera. ¿Cuántos dispositivos necesitaríamos si solo quisiéramos probar nuestra aplicación? Dios mío ... no todos los programadores son ricos como los demás ... ¡vamos! Hagamos que el emulador haga el trabajo ... así que estamos creando otras aplicaciones ... correcto, imz
gumuruh
4
"perder el tiempo" también me llamó la atención. Esa no es una buena respuesta, perdemos tiempo en el desarrollo según sea necesario;)
Pointer Null
3
Ya está disponible con Android Studio 3.0 Canary 1 a partir de hoy 17/05/2017.
BK
12

Aparentemente no es así y no esperaba que lo hiciera. SIN EMBARGO, Ivan trae a colación una buena posibilidad que se le ha escapado a la gente de Android.

¿Cuál es el propósito de un emulador? EMULAR, ¿verdad? No veo por qué, con fines de prueba, siempre que el evaluador comprenda las limitaciones, es posible que el emulador no agregue un emulador Wifi.

Por ejemplo, podría emular el acceso WiFi utilizando la conexión a Internet subyacente del host. Obviamente, probar la diferencia de WPA / WEP no tendría sentido, pero al menos podría alternar el acceso a través de WiFi.

O algún tipo de complemento de emulador donde habría un emulador de WiFi base que emularía el acceso WiFi a través de la conexión subyacente, pero luego, a través de la configuración, podría emular WPA / WEP proporcionando una lista de redes WiFi falsas y sus correspondientes contraseñas falsas que coincidirían contra una lista configurable de credenciales.

Después de todo, la idea es hacer una prueba inicial en el emulador y luego pasar al dispositivo real.

Señor de los guiones
fuente
8
Convenido. Si se emula 3G, ¿por qué no WiFi? Incluso con el solo propósito de permitir que los desarrolladores trabajen con alternar el estado de WiFi.
Kilizo
1
@Kilizo El problema aquí es que la pila WiFi es muy pesada de emular y necesita soporte para puentear la conexión de los hosts (o tener un dispositivo WiFi de repuesto para usar). Incluso con cosas como VMWare o VirtualBox, conseguir que la máquina virtual utilice correctamente un dispositivo WiFi completo es una molestia. La conectividad celular es fácil de emular, todo lo que necesita hacer es conectarse a su Internet normal, no necesita preocuparse por las redes locales o asegurarse de que el emulador de Android pueda controlar completamente el dispositivo de red.
sixones
11

A partir de ahora, con la Revisión 26.1.3 del emulador de Android, finalmente es posible en la imagen v8 de la API 25. Si el emulador se creó antes de actualizar a la última imagen de la API 25, debe borrar los datos o simplemente eliminar y recrea tu imagen si lo prefieres.

Se agregó soporte para Wi-Fi en algunas imágenes del sistema (actualmente solo nivel de API 25). Hay disponible un punto de acceso llamado "AndroidWifi" y Android se conecta automáticamente a él. La compatibilidad con Wi-Fi se puede desactivar ejecutando el emulador con el parámetro de línea de comando -feature -Wifi.

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

Eric Labelle
fuente
hola, ¿qué debo hacer para habilitar la función wifi? porque en la configuración de la opción wifi del emulador se desactiva automáticamente.
NehaK
Puedo verificar que funciona con Image Android 7.1.1 (Google Apis), API Level 25, ABI x86. Lo extraño es que no funciona con imágenes más nuevas: por ejemplo, API 27, ABI x86 (aquí puedo habilitar Wi-Fi, pero se apagará automáticamente)
TmTron
Tienes razón @TmTron, a partir de agosto de 2017, la respuesta que recibí de Google fueYou're right about API 26, it's in the works and will be available in the future. As for backporting to earlier versions that's something we would like to do although I can't make any promises as to when that will happen or how far back we will go.
Eric Labelle
Para la versión 27.1.2 del emulador, Wi-Fi funciona para los niveles de API 25 y 26, pero no para el 27.
CanC
10

(Repitiendo aquí mi respuesta en otra parte ).

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

Es útil para probar programas WiFi en Linux. Posiblemente, incluso en Linux en modo de usuario u otras "cajas" virtuales aisladas con Linux.

En teoría, este controlador podría usarse para pruebas en los sistemas Android donde no tienes un dispositivo WiFi real (o no quieres usarlo), y también en algún tipo de emuladores de Android. Quizás, uno puede manejar usar este controlador en android-x86, o - para probar - en android-x86 ejecutar en VirtualBox.

imz - Ivan Zakharyaschev
fuente
2
Tenga en cuenta que la mayor parte de lo que hace que wifi parezca "wifi" para una aplicación de Android se encuentra dentro del tiempo de ejecución de Android en modo de usuario. Existe una gran posibilidad de que todo lo que necesite cambiar sea el informe . Aunque la red del emulador tiene algunas propiedades más consistentes con un proveedor 3g que con uno wifi; específicamente un traductor de direcciones de red que no acepta conexiones entrantes que no sean de la interfaz de bucle invertido de la máquina de desarrollo de alojamiento. Modificar la plataforma para llamarla wifi funcionaría, pero el único par local que podría conectarse sería la máquina de desarrollo.
Chris Stratton
3

El emulador no proporciona hardware virtual para Wi-Fi si usa API 24 o anterior. Desde el sitio web de desarrolladores de Android:

Cuando se utiliza un AVD con nivel de API 25 o superior, el emulador proporciona un punto de acceso Wi-Fi simulado ("AndroidWifi") y Android se conecta automáticamente a él.

Puede deshabilitar Wi-Fi en el emulador ejecutando el emulador con el parámetro de línea de comandos -feature -Wifi.

https://developer.android.com/studio/run/emulator.html#wi-fi

Qué no es compatible

El emulador de Android no incluye hardware virtual para lo siguiente:

  • Bluetooth
  • NFC
  • Insertar / expulsar tarjeta SD
  • Auriculares conectados al dispositivo
  • USB

El emulador de reloj para Android Wear no es compatible con el botón Descripción general (aplicaciones recientes), el D-pad y el sensor de huellas digitales.

(lea más en https://developer.android.com/studio/run/emulator.html#about )

https://developer.android.com/studio/run/emulator.html#wi-fi

Stardust
fuente
12
-1 porque la captura de pantalla muestra que el dispositivo está conectado a través de 4G, no a través de WiFi, no responde, no resuelve ni proporciona ninguna información útil a la pregunta formulada.
sixones
1
@sixones Eso no significa necesariamente que no esté conectado a WiFi: el 4G se muestra con fines de emulación (por ejemplo, qué haría su aplicación si estuviera en 4G vs 3G) y se puede cambiar a través de la configuración. Incluso si WiFi se muestra como apagado o no conectado , aún puedo abrir Google porque mi computadora está conectada a WiFi. Entonces, aunque puede ver / descargar sitios web, no puede emular la conexión a WiFi con fines de emulación y, por lo tanto, para este propósito, necesita un dispositivo real que esté conectado a WiFi.
Stardust
2
@Stardust Exactamente, por lo que su respuesta no proporciona nada a la pregunta formulada más que mostrar que puede usar una conexión celular. La interfaz de usuario de Android es bastante simple, si está conectado a Wifi se muestra en la barra de notificaciones, también puede mostrar su conectividad celular al mismo tiempo dependiendo de lo que haya sucedido. Todo lo que ha demostrado es que puede usar el emulador en una máquina host conectada a wifi, que no es lo que estaba haciendo esta pregunta.
sixones
Desde API 25+ puede usar wi-fi developer.android.com/studio/run/emulator.html#wi-fi Esta respuesta ahora está desactualizada
Menuka Ishan