2009-10-13 18 views
30

Ich möchte von meiner App aus überprüfen, ob das Gerät WiFi-Konnektivität hat, aber um dies zu tun, muss ich zuerst einen Weg finden, "WiFi" im Emulator zu bekommen. Gehen Sie einfach auf Einstellungen -> Wireless -> Wireless LAN sagt konnte nicht gestartet WiFi, während logcat sagt:Android: Simulieren WiFi im Emulator?

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 

Wie kann ich WiFi-Konnektivität im Emulator simulieren?

Antwort

7

Da dies scheint eine beliebte Frage zu sein, werde ich fortfahren und eine aktualisierte Antwort hinzufügen. Das SDK unterstützt immer noch keine WiFi-Emulation, aber Genymotion funktioniert standardmäßig mit WLAN, sodass Sie damit Apps mit spezifischer WLAN-Funktionalität entwickeln/testen können.

+2

Korrekt, aber nur in der lizenzierten Version atm. –

+0

2017 Update, es ist jetzt verfügbar in der [API 25 Emulator] (https://developer.android.com/studio/releases/emulator.html#26-1-3), wenn Sie Hardwarebeschleunigung deaktivieren - –

19

Während Sie die Internetverbindung Ihres Computers im Emulator verwenden können, ist es derzeit nicht zuverlässig, es für die Simulation von Wi-Fi zu verwenden. Die WifiManager wird verwirrt, wenn Sie Ihren Verbindungsstatus wechseln/testen möchten.

Auch in Android 1.5 gab es einige Probleme damit (Issue 2571 - android), und während Sie Ihr Internet für die Simulation von HTTP-Verbindungen und Herunterladen von Daten verwenden können, sollte eine bessere Kontrolle über Wi-Fi-Konnektivität besser mit einem Gerät erfolgen.

3

Wenn Sie kein echtes Gerät haben, denke ich, dass die beste Installation android-x86 ist, oder verwenden Sie es auf Live-USB. Es gibt keine Unterschiede zwischen Android und Android-X86.

Und Android-x86-Unterstützung Wi-Fi. So können Sie Ihre App installieren und ausführen.

+0

in Ordnung ... aber funktioniert es so wie es ist? Ich meine Wim von diesem Emulator (virtualbox) zu simulieren? : D – gumuruh

+0

Ab heute tut es nicht. –

3

In der Theorie hat Linux (der Kernel zugrunde liegenden Android) mac80211_hwsim Treiber, der WiFi simuliert. Es kann verwendet werden, um mehrere WLAN-Geräte (einen Zugangspunkt und ein anderes WLAN-Gerät usw.) einzurichten, die ein WiFi-Netzwerk bilden.

Es ist nützlich zum Testen von WiFi-Programmen unter Linux. Möglicherweise sogar unter user-mode linux oder anderen isolierten virtuellen "Boxen" mit Linux.

In der Theorie könnte dieser Treiber für Tests in den Android-Systemen verwendet werden, wo Sie kein echtes WiFi-Gerät haben (oder nicht verwenden wollen), und auch in einer Art Android-Emulatoren. Vielleicht kann man es schaffen, diesen Treiber in android-x86 oder - zum Testen - in android-x86 in VirtualBox zu verwenden.

2

Wahrscheinlich kein Ersatz für die Prüfung auf einem realen Gerät, aber wenn Sie sich für eine gut genug Testfall im Emulator geben Fake Wifi Connection einen Versuch suchen:

Es macht Anwendungen denken, sie sind auf Wi-Fi, egal was die zugrunde liegende Verbindung ist.

Disclaimer: Ich schrieb dieses Zeug.
Es funktioniert durch abfangen von ConnectivityManager/WifiManager Anrufe (verwendet Xposed). Ich habe versucht, die meisten von ihnen abzudecken, also macht es einen ziemlich guten Job, trotzdem ist es immer möglich, dass einige fehlen (wenn Sie etwas finden, lassen Sie es mich wissen).

4

Android emulator wifi

Ausgehend von Revisions 26.1.3, das Android Emulator jetzt unterstützt bis zu WiFi auf einem Nougat Bild Verbindungs ​​(API 25).

Unterstützung für Wi-Fi in einigen Systemabbildern hinzugefügt (derzeit nur API-Ebene 25). Ein Zugangspunkt namens "AndroidWifi" ist verfügbar und Android verbindet sich automatisch mit ihm.

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

Sie können die Version des Emulators überprüfen, indem Sie in Emulator-Einstellungen gehen (drei Punkte)> Hilfe> Über. Beachten Sie außerdem, dass Sie, wenn ein AVD erstellt wurde, bevor Version 26.1.3 veröffentlicht wurde, Ihren AVD neu erstellen müssen. Ich habe irgendwo gelesen, dass das Löschen von Daten auch funktioniert, aber das habe ich nicht versucht.

+0

Ich musste deaktivieren Hardwarebeschleunigung, damit es verfügbar ist. Zum Zeitpunkt des Schreibens legen Sie 'Emulated Performance Graphics' auf' Software - GLES 2.0'. –

Verwandte Themen