2009-10-13 5 views
30

Я хотел бы проверить у моего приложения, имеет ли устройство WiFi-соединение, но для этого я должен сначала найти способ получить «WiFi» в эмуляторе. Просто буду Настройки -> Беспроводные сети -> Wifi говорит Не удалось запустить Wi-Fi, в то время как logcat говорит:Android: Имитировать Wi-Fi в эмуляторе?

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 

Как я могу имитировать подключение Wi-Fi в эмуляторе?

ответ

7

Поскольку этот вопрос, похоже, является популярным, я продолжу и добавлю обновленный ответ. SDK по-прежнему не поддерживает эмуляцию Wi-Fi, но Genymotion делает Wi-Fi по умолчанию, поэтому вы можете использовать его для разработки/тестирования приложений с определенными функциями WiFi.

+2

Исправить, но только в лицензированной версии atm. –

+0

2017, теперь он доступен в [эмуляторе API 25] (https://developer.android.com/studio/releases/emulator.html#26-1-3) при отключении аппаратного ускорения - –

19

В настоящее время, хотя вы можете использовать интернет-соединение своего компьютера в эмуляторе, использовать его для имитации Wi-Fi небезопасно. WifiManager путается, когда вы переключаете/хотите проверить состояние подключения.

Даже в Android 1.5 были проблемы с ним (Issue 2571 - android), и, хотя вы можете использовать свой Интернет для имитации HTTP-соединений и загрузки данных, более тонкое управление связью Wi-Fi лучше делать с помощью устройства.

3

Если у вас нет реального устройства, я думаю, что лучший способ - установить android-x86 или использовать его на live usb. Между андроидами и android-x86 нет различий.

И поддержка android-x86 wi-fi. поэтому вы можете установить приложение и запустить его.

+0

хорошо ... но он работает как есть? Я имею в виду имитацию Wi-Fi от этого эмулятора (виртуального бокса)? : D – gumuruh

+0

На сегодняшний день это не так. –

3

В теории linux (ядро, основанный на андроиде) имеет драйвер mac80211_hwsim, имитирующий WiFi. Его можно использовать для настройки нескольких устройств WiFi (точка доступа и другое устройство WiFi и т. Д.), Которые будут составлять сеть WiFi.

Полезно для тестирования программ WiFi под Linux. Возможно, даже под user-mode linux или другими изолированными виртуальными «ящиками» с linux.

Теоретически этот драйвер можно использовать для тестов в системах Android, где у вас нет реального устройства WiFi (или вы не хотите его использовать), а также в каких-то эмуляторах Android. Возможно, этот драйвер можно использовать в android-x86, или - для тестирования - в android-x86, запущенном в VirtualBox.

2

Вероятно, не заменит для тестирования на реальном устройстве, но если вы ищете хороший достаточно теста в эмуляторе дают Fake Wifi Connection попробовать:

Это делает приложения думают, что они не находятся на WiFi, независимо от того, что базовое соединение.

отказ от ответственности: Я написал этот материал.
Он работает путем перехвата вызовов ConnectivityManager/WifiManager (использует Xposed). Я пытался охватить большинство из них, так что это неплохая работа, но всегда возможно, что некоторые из них отсутствуют (если вы найдете что-то, дайте мне знать).

4

Android emulator wifi

Начиная с ревизии 26.1.3, то Android эмулятор теперь поддерживает подключение к Wi-Fi на Нуга изображения (API 25).

Добавлена ​​поддержка Wi-Fi в некоторых системных изображениях (в настоящее время только уровень API 25). Доступна точка доступа под названием «AndroidWifi», и Android автоматически подключается к ней.

Источник: https://developer.android.com/studio/releases/emulator.html#26-1-3

Вы можете проверить версию эмулятора, перейдя в настройки эмулятора (три точки)> Справка> О. Также обратите внимание, что если AVD был создан до того, как была выпущена версия 26.1.3, вам придется воссоздать свой AVD. Я где-то читал, что данные об очистке также могут работать, но я этого не делал.

+0

Мне нужно было отключить аппаратное ускорение для его доступности. Во время написания установите «Эмулированная графическая производительность» на «Программное обеспечение - GLES 2.0». –

 Смежные вопросы

  • Нет связанных вопросов^_^