Увімкнення WiFi на емуляторі Android


Відповіді:


126

Wifi недоступний на емуляторі, якщо ви використовуєте нижче рівня 25 API.

Використовуючи 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.

Яке призначення емулятора? ЕМУЛЮВАТИ, правда? Я не розумію, чому з метою тестування - якщо тестер розуміє обмеження - емулятор може не додати емулятор Wifi.

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

Або якийсь плагін емулятора, де був би базовий емулятор WiFi, який би емулював доступ до WiFi через базове з'єднання, але потім через конфігурацію він міг би імітувати WPA / WEP, надаючи список підроблених мереж WiFi та відповідні їм підроблені паролі, які б відповідали проти настроюваного списку облікових даних.

Адже ідея полягає в тому, щоб зробити початкове тестування на емуляторі, а потім перейти до фактичного пристрою.


8
Домовились. Якщо 3G імітується, то чому б не WiFi? Навіть лише для того, щоб дозволити розробникам працювати з переключеним станом WiFi.
Кілізо

1
@Kilizo Проблема полягає в тому, що стек WiFi дуже важкий для імітації і потребує підтримки для з'єднання з'єднання з хостом (або для використання запасного пристрою WiFi). Навіть за таких речей, як VMWare або VirtualBox, отримання віртуальної машини для правильного використання повнофункціонального пристрою Wi-Fi - це біль. Стільникове підключення легко перейматися, все, що потрібно зробити, це підключити вас до вашого звичайного Інтернету, вам не потрібно турбуватися про локальну мережу або про те, щоб емулятор Android міг повністю керувати мережевим пристроєм.
шестикосів

11

Наразі з редакцією 26.1.3 Android-емулятора це можливо, нарешті, на зображенні v8 API 25. Якщо емулятор був створений перед оновленням до останнього зображення API 25, вам потрібно стерти дані або просто видалити і відтворіть своє зображення, якщо хочете.

Додано підтримку Wi-Fi у деяких системних образах (наразі лише рівень 25 API). Точка доступу під назвою "AndroidWifi" доступна і Android автоматично підключається до неї. Підтримку Wi-Fi можна відключити, запустивши емулятор з параметром командного рядка -властивість -Wifi.

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


привіт, що мені потрібно буде зробити функцію Wi-Fi? тому що в налаштуваннях емулятора опція wifi автоматично відключається.
NehaK

Я можу переконатися, що він працює із зображенням Android 7.1.1 (Google Apis), API рівня 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.
Eric Labelle

Для емулятора версії 27.1.2 Wi-Fi працює для рівнів API 25 та 26, але не для 27.
CanC

10

(Повторюючи тут свою відповідь в іншому місці .)

Теоретично, Linux (ядро, що лежить в основі Android) має mac80211_hwsim драйвер , який імітує WiFi. Його можна використовувати для налаштування декількох пристроїв WiFi (точка доступу та іншого пристрою WiFi тощо), які б складали мережу WiFi.

Це корисно для тестування програм WiFi під Linux. Можливо, навіть в Linux-режимі користувача або інших ізольованих віртуальних "коробках" з linux.

Теоретично цей драйвер можна використовувати для тестів в системах Android, де у вас немає реального пристрою WiFi (або не хочете ним користуватися), а також у деяких андроїд-емуляторах. Можливо, комусь вдасться використати цей драйвер в android-x86 або - для тестування - в Android-x86, запущеному у VirtualBox.


2
Зауважте, що більшість з тих, що робить Wi-Fi схожим на "wifi" для програми Android, знаходиться в режимі користувальницького режиму Android. Є великий шанс, що все, що потрібно змінити, - це звітність . Хоча мережа емулятора має деякі властивості, які більше відповідають 3g постачальнику, ніж Wi-Fi; зокрема перекладач мережевих адрес, який не приймає вхідні з'єднання, окрім інтерфейсу зворотного звороту на машині розробки хостингу. Модифікація платформи для її виклику на wifi - це було б якоюсь роботою, але єдиним місцевим партнером, який міг би підключитися, буде машина розробників.
Кріс Страттон

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, а не через WiFi, не відповідає, не вирішує та не надає корисної інформації на поставлене запитання.
шістсони

1
@sixones Це не обов'язково означає, що він не підключений до WiFi: 4G відображається для цілей емуляції (наприклад, що зробить ваше додаток, якби це було в 4G проти 3G) і його можна змінити через налаштування. Навіть якщо Wi-Fi відображається як вимкнено чи не підключено , я все одно можу відкрити Google, оскільки мій комп'ютер підключений до WiFi. Тож, хоча ви можете переглядати / завантажувати веб-сайти, ви не можете емулювати підключення до WiFi для цілей емуляції, і, таким чином, для цього вам потрібен справжній пристрій, підключений до WiFi.
Stardust

2
@Stardust Точно так, що ваша відповідь не відповідає нічого на поставлене питання, окрім показу, що ви можете використовувати зв’язок стільникового зв’язку. Користувацький інтерфейс Android досить простий, якщо ваш підключений до Wifi він відображається на панелі сповіщень, він також може одночасно показувати ваше мобільне з'єднання залежно від того, що сталося. Все, що ви показали, - це те, що ви можете використовувати емулятор на хост-машині, підключеній до wifi.
шестикосів

З API 25+ ви можете використовувати wi-fi developer.android.com/studio/run/emulator.html#wi-fi Ця відповідь застаріла
Menuka Ishan

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.