Aktivieren von WiFi auf Android Emulator

Antworten:

126

Wifi ist auf dem Emulator nicht verfügbar, wenn Sie API-Stufe 25 verwenden.

Bei Verwendung einer AVD mit API-Level 25 oder höher bietet der Emulator einen simulierten Wi-Fi-Zugangspunkt ("AndroidWifi"), mit dem Android automatisch eine Verbindung herstellt.

Weitere Informationen: https://developer.android.com/studio/run/emulator.html#wifi

Salman Khalid
quelle
1
Ich möchte den VNC-Server auf dem Emulator testen und die VNC-Server-App benötigt Wifi oder USB, um eine Verbindung zum Netzwerk herzustellen. Was ist dann die beste Lösung?
MFQ
1
@mfq auf einem realen Gerät ausführen oder eine Open-Source-VNC-App verwenden, die so geändert wurde, dass sie sich nicht darum kümmert.
Chris Stratton
11
Verschwenden Sie nicht Ihre Zeit @salman khalid? Ist das wahr? Aus Sicht der Programmierer habe ich gesehen, dass wir die Kosten für den Kauf eines tatsächlichen Geräts minimieren müssen, wenn dies passiert ist. Wie viele Geräte würden wir benötigen, wenn wir nur unsere App testen möchten? OMG ... nicht jeder Programmierer ist so reich wie andere ... komm schon! Lassen wir den Emulator die Arbeit machen ... also machen wir noch eine App ... richtig, imz
gumuruh
4
"Zeitverschwendung" fiel mir ebenfalls auf. Das ist keine schöne Antwort, wir verschwenden Zeit für die Entwicklung nach Bedarf;)
Zeiger Null
3
Es ist ab dem 17.05.2017 ab sofort mit Android Studio 3.0 Canary 1 verfügbar.
BK
12

Anscheinend nicht und ich habe nicht ganz damit gerechnet. Ivan spricht jedoch eine gute Möglichkeit an, die Android-Leuten entgangen ist.

Was ist der Zweck eines Emulators? zu emulieren, richtig? Ich verstehe nicht, warum der Emulator zu Testzwecken - vorausgesetzt, der Tester versteht die Einschränkungen - möglicherweise keinen Wifi-Emulator hinzufügt.

Es könnte beispielsweise den WiFi-Zugang über die zugrunde liegende Internetverbindung des Hosts emulieren. Offensichtlich wäre es nicht sinnvoll, die WPA / WEP-Unterschiede zu testen, aber zumindest könnte der Zugriff über WLAN umgeschaltet werden.

Oder eine Art Emulator-Plugin, bei dem es einen Basis-WiFi-Emulator gibt, der den WiFi-Zugang über die zugrunde liegende Verbindung emuliert, dann aber über die Konfiguration WPA / WEP emuliert, indem eine Liste gefälschter WiFi-Netzwerke und der entsprechenden gefälschten Passwörter bereitgestellt wird, die übereinstimmen gegen eine konfigurierbare Liste von Anmeldeinformationen.

Schließlich besteht die Idee darin, erste Tests am Emulator durchzuführen und dann mit dem eigentlichen Gerät fortzufahren.

Herr der Skripte
quelle
8
Einverstanden. Wenn 3G emuliert ist, warum dann nicht WiFi? Selbst nur, um Entwicklern das Umschalten des WLAN-Status zu ermöglichen.
Kilizo
1
@Kilizo Das Problem hierbei ist, dass der WiFi-Stack sehr schwer zu emulieren ist und Unterstützung für die Überbrückung der Host-Verbindung benötigt (oder dass ein Ersatz-WiFi-Gerät verwendet werden muss). Selbst bei Dingen wie VMWare oder VirtualBox ist es ein Problem, wenn die virtuelle Maschine ein vollständiges WiFi-Gerät korrekt verwendet. Die Mobilfunkverbindung ist einfach zu emulieren. Sie müssen lediglich eine Verbindung zu Ihrem normalen Internet herstellen. Sie müssen sich keine Gedanken über lokale Netzwerke machen oder sicherstellen, dass der Android-Emulator das Netzwerkgerät vollständig steuern kann.
Sixones
11

Mit Revision 26.1.3 des Android-Emulators ist dies ab sofort auf dem Image v8 der API 25 möglich. Wenn der Emulator vor dem Upgrade auf das neueste API 25-Image erstellt wurde, müssen Sie Daten löschen oder einfach löschen und erstellen Sie Ihr Bild neu, wenn Sie es vorziehen.

Unterstützung für Wi-Fi in einigen Systemabbildern hinzugefügt (derzeit nur API-Stufe 25). Ein Zugangspunkt namens "AndroidWifi" ist verfügbar und Android stellt automatisch eine Verbindung dazu her. Die Wi-Fi-Unterstützung kann deaktiviert werden, indem der Emulator mit dem Befehlszeilenparameter -feature -Wifi ausgeführt wird.

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

Eric Labelle
quelle
Hallo, was muss ich tun, um die WLAN-Funktion zu aktivieren? weil in den Einstellungen des Emulators die WLAN-Option automatisch deaktiviert wird.
NehaK
Ich kann überprüfen, ob es mit Image Android 7.1.1 (Google Apis), API Level 25, ABI x86 funktioniert. Das Seltsame ist, dass es mit neueren Images nicht funktioniert: zB API 27, ABI x86 (hier kann ich Wi-Fi aktivieren, aber es wird automatisch wieder ausgeschaltet)
TmTron
Sie haben Recht @TmTron, ab August 2017 war die Antwort, die ich von Google erhieltYou'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
Für die Emulatorversion 27.1.2 funktioniert Wi-Fi für die API-Level 25 und 26, jedoch nicht für 27.
CanC
10

(Wiederhole hier meine Antwort an anderer Stelle .)

Theoretisch hat Linux (der Kernel, der Android zugrunde liegt) den Treiber mac80211_hwsim , der WiFi simuliert. Es kann verwendet werden, um mehrere WiFi-Geräte (einen Zugangspunkt und ein anderes WiFi-Gerät usw.) einzurichten, aus denen ein WiFi-Netzwerk besteht.

Es ist nützlich, um WiFi-Programme unter Linux zu testen. Möglicherweise sogar unter Benutzermodus Linux oder anderen isolierten virtuellen "Boxen" mit Linux.

Theoretisch könnte dieser Treiber für Tests in Android-Systemen verwendet werden, in denen Sie kein echtes WiFi-Gerät haben (oder es nicht verwenden möchten), und auch in einer Art von Android-Emulatoren. Vielleicht kann man diesen Treiber in Android-x86 oder - zum Testen - in Android-x86 verwenden, das in VirtualBox ausgeführt wird.

imz - Ivan Zakharyaschev
quelle
2
Beachten Sie, dass das meiste, was WLAN für eine Android-App als "WLAN" erscheinen lässt, im Benutzermodus der Android-Laufzeit liegt. Es besteht eine faire Chance, dass sich nur die Berichterstattung ändern muss . Obwohl das Emulator-Netzwerk einige Eigenschaften aufweist, die mit einem 3G-Anbieter konsistenter sind als mit einem WLAN-Anbieter. Insbesondere ein Netzwerkadressübersetzer, der keine anderen eingehenden Verbindungen als die Loopback-Schnittstelle der Hosting-Entwicklungsmaschine akzeptiert. Das Ändern der Plattform, um sie als WLAN zu bezeichnen, würde funktionieren, aber der einzige lokale Peer, der eine Verbindung herstellen könnte, wäre die Entwicklungsmaschine.
Chris Stratton
3

Der Emulator stellt keine virtuelle Hardware für Wi-Fi bereit, wenn Sie API 24 oder früher verwenden. Von der Android-Entwickler-Website:

Bei Verwendung einer AVD mit API-Level 25 oder höher bietet der Emulator einen simulierten Wi-Fi-Zugangspunkt ("AndroidWifi"), mit dem Android automatisch eine Verbindung herstellt.

Sie können Wi-Fi im Emulator deaktivieren, indem Sie den Emulator mit dem Befehlszeilenparameter -feature -Wifi ausführen.

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

Was wird nicht unterstützt?

Der Android-Emulator enthält keine virtuelle Hardware für Folgendes:

  • Bluetooth
  • NFC
  • Einlegen / Auswerfen der SD-Karte
  • Am Gerät angeschlossene Kopfhörer
  • USB

Der Uhrenemulator für Android Wear unterstützt die Schaltfläche Übersicht (Letzte Apps), das Steuerkreuz und den Fingerabdrucksensor nicht.

(Lesen Sie mehr unter https://developer.android.com/studio/run/emulator.html#about )

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

Sternenstaub
quelle
12
-1, da der Screenshot zeigt, dass das Gerät über 4G und nicht über WLAN verbunden ist, die gestellte Frage nicht beantwortet, löst oder hilfreiche Informationen liefert.
Sixones
1
@sixones Das bedeutet nicht unbedingt, dass es nicht mit WiFi verbunden ist: Das 4G wird zu Emulationszwecken angezeigt (wie würde Ihre Anwendung bei 4G gegen 3G funktionieren) und kann über die Einstellungen geändert werden. Selbst wenn WLAN als deaktiviert oder nicht verbunden angezeigt wird , kann ich Google weiterhin öffnen, da mein Computer mit WLAN verbunden ist. Obwohl Sie Websites anzeigen / herunterladen können, können Sie die Verbindung zu WiFi nicht zu Emulationszwecken emulieren. Daher benötigen Sie zu diesem Zweck ein echtes Gerät, das mit WiFi verbunden ist.
Stardust
2
@Stardust Genau, Ihre Antwort liefert also nichts auf die gestellte Frage, außer zu zeigen, dass Sie eine Mobilfunkverbindung verwenden können. Die Android-Benutzeroberfläche ist ziemlich einfach. Wenn Sie mit Wifi verbunden sind, wird dies in der Benachrichtigungsleiste angezeigt. Je nachdem, was passiert ist, kann gleichzeitig auch Ihre Mobilfunkverbindung angezeigt werden. Alles, was Sie gezeigt haben, ist, dass Sie den Emulator auf einem mit WLAN verbundenen Host-Computer verwenden können, was in dieser Frage nicht gestellt wurde.
Sixones
Ab API 25+ können Sie Wi-Fi Developer.android.com/studio/run/emulator.html#wi-fi verwenden. Diese Antwort ist jetzt veraltet
Menuka Ishan