Abilitazione del WiFi su Android Emulator


Risposte:


126

Il Wi-Fi non è disponibile sull'emulatore se utilizzi un livello API inferiore a 25.

Quando si utilizza un AVD con API di livello 25 o superiore, l'emulatore fornisce un punto di accesso Wi-Fi simulato ("AndroidWifi") e Android si connette automaticamente ad esso.

Ulteriori informazioni: https://developer.android.com/studio/run/emulator.html#wifi


1
Voglio testare il server VNC sull'emulatore e l'app server vnc richiede Wi-Fi o USB per connettersi alla rete? allora qual è la soluzione migliore?
mfq

1
@mfq viene eseguito su un dispositivo reale o utilizza un'app VNC open source modificata per non preoccuparsene.
Chris Stratton

11
non sprecare il tuo tempo @salman khalid? È vero? Dal punto di vista dei programmatori, quello che ho visto è che abbiamo bisogno di ridurre al minimo il costo di acquisto del dispositivo effettivo se accadesse. Di quanti dispositivi avremmo bisogno se volessimo solo testare la nostra app? OMG .... non tutti i programmatori sono ricchi come gli altri ... dai! Facciamo funzionare l'emulatore ... quindi stiamo creando altre app ... giusto, imz
gumuruh

4
Anche "perdere tempo" è venuto alla mia attenzione. Non è una bella risposta, perdiamo tempo nello sviluppo, se necessario;)
Puntatore Null

3
È ora disponibile con Android Studio 3.0 Canary 1 a partire da oggi 17/05/2017.
BK

12

Apparentemente non è così e non me lo aspettavo. TUTTAVIA Ivan solleva una buona possibilità che è sfuggita alle persone Android.

Qual è lo scopo di un emulatore? EMULARE, giusto? Non vedo perché a scopo di test, a condizione che il tester comprenda i limiti, l'emulatore potrebbe non aggiungere un emulatore Wifi.

Ad esempio, potrebbe emulare l'accesso WiFi utilizzando la connessione Internet sottostante dell'host. Ovviamente testare la differenza WPA / WEP non avrebbe senso, ma almeno potrebbe attivare l'accesso tramite WiFi.

O una sorta di plug-in di emulatore in cui ci sarebbe un emulatore WiFi di base che emulerebbe l'accesso WiFi tramite la connessione sottostante ma poi tramite la configurazione potrebbe emulare WPA / WEP fornendo un elenco di reti WiFi false e le loro password false corrispondenti che verrebbero abbinate rispetto a un elenco configurabile di credenziali.

Dopotutto l'idea è di fare un test iniziale sull'emulatore e poi passare al dispositivo vero e proprio.


8
Concordato. Se il 3G viene emulato, perché non il WiFi? Anche solo allo scopo di consentire agli sviluppatori di lavorare con la commutazione dello stato WiFi.
Kilizo

1
@Kilizo Il problema qui è che lo stack WiFi è molto pesante da emulare e necessita di supporto per il bridging della connessione host (o per avere un dispositivo WiFi di riserva da usare). Anche con cose come VMWare o VirtualBox fare in modo che la macchina virtuale utilizzi correttamente un dispositivo WiFi completo è un problema. La connettività cellulare è facile da emulare, tutto ciò che deve fare è connetterti alla tua normale rete Internet, non devi preoccuparti della rete locale o assicurarti che l'emulatore Android sia in grado di controllare completamente il dispositivo di rete.
sixones

11

A partire da ora, con la revisione 26.1.3 dell'emulatore Android, è finalmente possibile sull'immagine v8 dell'API 25. Se l'emulatore è stato creato prima dell'aggiornamento all'ultima immagine API 25, è necessario cancellare i dati o semplicemente eliminare e ricrea la tua immagine se preferisci.

Aggiunto supporto per Wi-Fi in alcune immagini di sistema (attualmente solo livello API 25). È disponibile un punto di accesso chiamato "AndroidWifi" e Android si connette automaticamente ad esso. Il supporto Wi-Fi può essere disabilitato eseguendo l'emulatore con il parametro della riga di comando -feature -Wifi.

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


ciao, cosa devo fare per abilitare la funzione wifi? perché nelle impostazioni dell'emulatore l'opzione wifi viene disattivata automaticamente.
NehaK

Posso verificare che funzioni con l'immagine Android 7.1.1 (Google Apis), API Level 25, ABI x86. La cosa strana è che non funziona con le immagini più recenti: ad esempio API 27, ABI x86 (Qui posso abilitare il Wi-Fi, ma si spegnerà automaticamente)
TmTron

Hai ragione @TmTron, ad agosto 2017 la risposta che ho ricevuto da Google è stataYou'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

Per l'emulatore versione 27.1.2, il Wi-Fi funziona per i livelli API 25 e 26, ma non 27.
CanC

10

(Ripetendo qui la mia risposta altrove .)

In teoria, linux (il kernel sottostante Android) ha il driver mac80211_hwsim , che simula il WiFi. Può essere utilizzato per configurare diversi dispositivi WiFi (un punto di accesso e un altro dispositivo WiFi e così via), che costituirebbero una rete WiFi.

È utile per testare i programmi WiFi su Linux. Forse, anche in modalità utente Linux o altre "scatole" virtuali isolate con Linux.

In teoria, questo driver potrebbe essere utilizzato per i test nei sistemi Android in cui non si dispone di un vero dispositivo WiFi (o non si desidera utilizzarlo) e anche in una sorta di emulatori Android. Forse, si può riuscire a utilizzare questo driver in android-x86 o, per i test, in android-x86 eseguito in VirtualBox.


2
Tieni presente che la maggior parte di ciò che fa sembrare il wifi "wifi" per un'app Android è all'interno del runtime Android in modalità utente. C'è una buona possibilità che tutto ciò che dovrebbe cambiare è il reporting . Sebbene la rete dell'emulatore abbia alcune proprietà più coerenti con un provider 3G che con uno wifi; in particolare un traduttore di indirizzi di rete che non accetta connessioni in entrata diverse dall'interfaccia di loopback della macchina di sviluppo host. Modificare la piattaforma per chiamarla wifi funzionerebbe, ma l'unico peer locale che potrebbe connettersi sarebbe la macchina di sviluppo.
Chris Stratton

3

L'emulatore non fornisce hardware virtuale per Wi-Fi se utilizzi API 24 o versioni precedenti. Dal sito web degli sviluppatori Android:

Quando si utilizza un AVD con API di livello 25 o superiore, l'emulatore fornisce un punto di accesso Wi-Fi simulato ("AndroidWifi") e Android si connette automaticamente ad esso.

È possibile disabilitare il Wi-Fi nell'emulatore eseguendo l'emulatore con il parametro della riga di comando -feature -Wifi.

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

Cosa non è supportato

L'emulatore Android non include l'hardware virtuale per quanto segue:

  • Bluetooth
  • NFC
  • Inserimento / espulsione della scheda SD
  • Cuffie collegate al dispositivo
  • USB

L'emulatore dell'orologio per Android Wear non supporta il pulsante Panoramica (app recenti), il D-pad e il sensore di impronte digitali.

(leggi di più su https://developer.android.com/studio/run/emulator.html#about )

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


12
-1 perché lo screenshot mostra che il dispositivo è connesso tramite 4G e non tramite WiFi, non risponde, non risolve o fornisce alcuna informazione utile alla domanda posta.
sixones

1
@sixones Ciò non significa necessariamente che non sia connesso al WiFi: il 4G viene mostrato per scopi di emulazione (come, cosa farebbe la tua applicazione se fosse a 4G vs 3G) e può essere modificato tramite le impostazioni. Anche se il WiFi viene mostrato come spento o non connesso , posso comunque aprire Google perché il mio computer è connesso al WiFi. Quindi, sebbene sia possibile visualizzare / scaricare siti Web, non è possibile emulare la connessione al WiFi per scopi di emulazione e quindi, per questo scopo, è necessario un dispositivo reale connesso al WiFi.
Stardust il

2
@Stardust Exactly, quindi la tua risposta non fornisce nulla alla domanda posta se non mostrare che puoi usare una connessione cellulare. L'interfaccia utente di Android è piuttosto semplice, se la tua connessione al Wifi viene visualizzata nella barra delle notifiche, può anche mostrare la tua connettività cellulare allo stesso tempo a seconda di cosa è successo. Tutto quello che hai mostrato è che puoi usare l'emulatore su una macchina host connessa wifi, che non è ciò che questa domanda stava chiedendo.
sixones

Dall'API 25+ puoi usare il wi-fi developer.android.com/studio/run/emulator.html#wi-fi Questa risposta è ora obsoleta
Menuka Ishan

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.