Включение WiFi в эмуляторе Android

Ответы:

126

Wi-Fi недоступен в эмуляторе, если вы используете API уровня ниже 25.

При использовании AVD с уровнем API 25 или выше эмулятор предоставляет имитацию точки доступа Wi-Fi («AndroidWifi»), и Android автоматически подключается к ней.

Дополнительная информация: https://developer.android.com/studio/run/emulator.html#wifi

Салман Халид
источник
1
Я хочу протестировать сервер VNC на эмуляторе, а приложению сервера vnc требуется Wi-Fi или USB для подключения к сети? тогда какое решение лучше?
mfq
1
@mfq запускать на реальном устройстве или использовать приложение VNC с открытым исходным кодом, измененное безразлично.
Крис Страттон
11
не тратьте время зря @salman khalid? Это правда? С точки зрения программистов, я увидел, что нам нужно минимизировать затраты на покупку реального устройства, если это произойдет. Сколько устройств нам понадобится, если мы просто хотим протестировать наше приложение? OMG .... не все программисты так богаты, как другие ... давай! Давайте заставим эмулятор делать работу ... так что мы делаем другие приложения ... верно, imz
gumuruh
4
«Тратить время впустую» тоже привлекло мое внимание. Неприятный ответ, мы тратим время на разработку по мере необходимости;)
Pointer Null
3
Он доступен в Android Studio 3.0 Canary 1 с 17.05.2017.
BK
12

Очевидно, это не так, и я не совсем ожидал, что это произойдет. ОДНАКО Иван предлагает хорошую возможность, которая ускользнула от Android-людей.

Для чего нужен эмулятор? ЭМУЛИРОВАТЬ, верно? Я не понимаю, почему в целях тестирования - при условии, что тестировщик понимает ограничения - эмулятор может не добавлять эмулятор Wi-Fi.

Например, он может имитировать доступ к Wi-Fi, используя базовое интернет-соединение хоста. Очевидно, что тестирование различий WPA / WEP не имело бы смысла, но, по крайней мере, можно было переключать доступ через WiFi.

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

В конце концов, идея состоит в том, чтобы провести первоначальное тестирование на эмуляторе, а затем перейти к реальному устройству.

Лорд скриптов
источник
8
Согласовано. Если 3G эмулируется, то почему не WiFi? Даже просто для того, чтобы позволить разработчикам работать с переключением состояния WiFi.
Kilizo
1
@Kilizo Проблема здесь в том, что стек WiFi очень сложно эмулировать, и ему нужна поддержка для мостового соединения хостов (или наличия запасного WiFi-устройства для использования). Даже с такими вещами, как VMWare или VirtualBox, заставить виртуальную машину правильно использовать полноценное устройство Wi-Fi сложно. Сотовую связь легко эмулировать, все, что ей нужно сделать, это подключить вас к обычному Интернету, вам не нужно беспокоиться о локальной сети или о том, чтобы эмулятор Android мог полностью управлять сетевым устройством.
sixones 02
11

На данный момент с версией 26.1.3 эмулятора Android это, наконец, возможно на образе v8 API 25. Если эмулятор был создан до обновления до последнего образа API 25, вам необходимо стереть данные или просто удалить и воссоздайте свой образ, если хотите.

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

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

Эрик Лабель
источник
привет, что мне нужно сделать, чтобы включить функцию Wi-Fi? потому что в настройках эмулятора автоматически отключается опция wifi.
NehaK
Я могу проверить, что он работает с Image Android 7.1.1 (Google Apis), API Level 25, ABI x86. Странно то, что он не работает с новыми изображениями: например, API 27, ABI x86 (здесь я могу включить Wi-Fi, но он автоматически выключится)
TmTron
Вы правы, @TmTron, по состоянию на август 2017 года ответ, который я получил от Google, былYou'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.
Эрик Лабель,
Для эмулятора версии 27.1.2 Wi-Fi работает для уровней API 25 и 26, но не для 27.
CanC,
10

(Повторяю здесь свой ответ в другом месте .)

Теоретически Linux (ядро, лежащее в основе Android) имеет драйвер mac80211_hwsim , который имитирует WiFi. Его можно использовать для настройки нескольких устройств Wi-Fi (точки доступа, другого устройства Wi-Fi и т. Д.), Которые будут составлять сеть Wi-Fi.

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

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

imz - Иван Захарящев
источник
2
Обратите внимание, что большая часть того, что делает Wi-Fi «Wi-Fi» для приложения Android, находится в среде выполнения Android в пользовательском режиме. Есть большая вероятность, что все, что нужно будет изменить, - это отчетность . Хотя сеть эмулятора имеет некоторые свойства, более соответствующие провайдеру 3G, чем Wi-Fi; в частности, транслятор сетевых адресов, который не принимает входящие соединения, кроме как от интерфейса обратной связи хост-машины для разработки. Изменение платформы, чтобы называть ее Wi-Fi, вроде бы сработало, но единственным локальным узлом, который мог бы подключиться, был бы компьютер разработчика.
Крис Стрэттон
3

Эмулятор не предоставляет виртуальное оборудование для Wi-Fi, если вы используете API 24 или более раннюю версию. С веб-сайта разработчиков Android:

При использовании AVD с уровнем API 25 или выше эмулятор предоставляет имитацию точки доступа Wi-Fi («AndroidWifi»), и Android автоматически подключается к ней.

Вы можете отключить Wi-Fi в эмуляторе, запустив эмулятор с параметром командной строки -feature -Wifi.

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

Что не поддерживается

Эмулятор Android не включает виртуальное оборудование для следующего:

  • Bluetooth
  • NFC
  • Вставка / извлечение SD-карты
  • Подключенные к устройству наушники
  • USB

Эмулятор часов для Android Wear не поддерживает кнопку «Обзор (последние приложения)», D-pad и датчик отпечатков пальцев.

(подробнее см. https://developer.android.com/studio/run/emulator.html#about )

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

Звездная пыль
источник
12
-1, потому что на снимке экрана показано, что устройство подключено через 4G, а не через Wi-Fi, не отвечает, не решает и не предоставляет какую-либо полезную информацию на заданный вопрос.
sixones
1
@sixones Это не обязательно означает, что он не подключен к Wi-Fi: 4G отображается в целях эмуляции (например, что бы делало ваше приложение, если бы оно было в 4G или 3G), и его можно изменить в настройках. Даже если Wi-Fi отображается как выключенный или не подключенный , я все равно могу открыть Google, потому что мой компьютер подключен к Wi-Fi. Таким образом, хотя вы можете просматривать / загружать веб-сайты, вы не можете имитировать подключение к Wi-Fi для целей эмуляции, и, следовательно, для этой цели вам понадобится реальное устройство, подключенное к Wi-Fi.
Stardust
2
@Stardust Точно, поэтому ваш ответ не содержит ничего, кроме демонстрации того, что вы можете использовать сотовую связь. Пользовательский интерфейс Android довольно прост: если вы подключены к Wi-Fi, он отображается в панели уведомлений, он также может одновременно отображать ваше сотовое подключение в зависимости от того, что произошло. Все, что вы показали, - это то, что вы можете использовать эмулятор на хост-машине, подключенной к Wi-Fi, а это не то, о чем этот вопрос задавал.
sixones 02
Из API 25+ вы можете использовать wi-fi developer.android.com/studio/run/emulator.html#wi-fi Этот ответ теперь устарел
Менука Ишан