Как запустить приложение Wi-Fi одноранговой сети в эмуляторе Android.?
Я пытаюсь разработать приложение для одноранговой сети wifi для android (4. +).
Проблема здесь в том, как протестировать его.
Я попытался запустить это приложение в эмуляторе Android. не было никакой опции для настройки Wi-Fi в меню настроек, я также устал, чтобы включить Wi-Fi, используя приложение-разработчик из формы эмулятора, но это не сработало, И через весь мой googling в течение 3 дней, и я обнаружил, что эмулятор Android не поддерживается Wi-Fi.
Итак, я выбрал androidx86 4.0eeepc, используя виртуальную коробку, и устал добавлять устройства как WiFi, так и bluetooth (мое приложение использует как bluetooth, так и Wi-Fi), но только Bluetooth-устройство было добавлено, и оно не сработало. Но мое виртуальное окно обнаружило устройства Wi-Fi и Bluetooth. Я просто не мог заставить их работать с виртуальной машиной.
Я пробовал все, как вручную добавлять адреса с помощью приложения эмулятора терминала в androidx86 и использовал netcfg
через командную строку android, но ни одна из них не работала.
Пожалуйста, предлагайте и направляйте меня по правильному пути запуска таких приложений, которые используют Wi-Fi и Bluetooth в android.
Спасибо заранее.
Ответы
Ответ 1
Во-первых, убедитесь, что вы включили функцию WiFi Direct в настройках Android для двух экземпляров виртуальных боксов:
Настройки → Беспроводная связь и сети → Подробнее... → Wi-Fi direct
Было заявлено как работающее, когда преодоление препятствия было преодолено, и я уверен, что многие испытали то же самое... просто обязательно включить wifi direct
Я бы попробовал именно то, что вы уже пробовали, естественно перейдя с эмулятора на проект androidx86. Несмотря на ненадежность, я бы порекомендовал посмотреть и уладить это, если вы еще этого не видели: Android: имитировать Wi-Fi в эмуляторе? и Как отключить/включить сеть, переключиться на Wi-Fi в эмуляторе Android?, скорее всего, не будет иметь полный успех, но может быть достаточно, чтобы вы знали, что он работает или будет работать.
Что касается тестирования WiFi-Direct/WiFiP2P без вас, у вас есть устройство/я, я бы порекомендовал:
- Попробуйте некоторые из упражнений, как указано выше. И прочитайте тонны журналов.
- Вы всегда можете толковать источник друзьям, или выпустить apk на форуме для небольшой группы тестировщиков.
Конечно, обе эти опции не идеальны, неактивны или быстрей. Итак, я определенно надеюсь, что вы будете запускать виртуальные виртуальные машины VirtualBox из AndroidX86 4.0, как следует, если вы проверите этот параметр и соедините Wi-Fi AP: -)
Ответ 2
Решение ближайшего будущего:
Это может быть что-то, что нужно изучить в ближайшем будущем.
Реальные устройства размещаются на Samsung, а экраны транслируются на ваш ПК.
http://developer.samsung.com/remoteTestLab.do
Согласно электронному письму от Samsung, которое я отправил ранее.
На данный момент у них есть только 2 устройства (Galaxy Nexus), работающие на Android версии 4.0.
К сожалению, они физически не близки друг к другу. (Один в Корее, один в Польше)
Но они планируют модернизировать существующую Galaxy S2 до версии 4.0.
Потому что недавно Samsung выпустила обновление версии 4.0 для S2.
Как только они это сделают, будет много телефонов v4.0.
И вы можете спросить их, у которых 2 телефона физически близки, чтобы вы могли проверить Wifi Direct.
--------------------------- РЕДАКТИРОВАТЬ ---------------- -----------------
Сейчас есть много устройств ICS, которые вы можете протестировать P2P.
Проверьте с ними, которые 2 физически близки друг к другу.
Ответ 3
В docs:
Каждый экземпляр эмулятора работает за виртуальным маршрутизатором/брандмауэром сервис, который изолирует его от сети разработки интерфейсов и настроек и из Интернета.
Вам необходимо использовать Network Redirection, как описанные в Документах разработчика. По сути, вы отправляете определенные порты, используя ADB. Поэтому вы не можете тестировать такие вещи, как широковещательные сообщения.
Я попытался сделать то, что вы пытаетесь сделать, и... пока я не скажу, что это невозможно (что-то возможно при вычислении с достаточным временем, деньгами и настойчивостью) - я потратил много времени на Это. Вы не можете рассматривать эмулятор Android как обычное сетевое одноранговое устройство. Насколько мне удалось найти, это вилка QEMU, и именно так реализуется эмулятор QEMU.
QEMU сам поддерживает TUN/TAP bridging, но я никогда не мог заставить его работать с эмулятором Android. Если вы хотите пройти этот маршрут, вам может потребоваться расследовать запуск Android в эмуляторе QEMU, а не в эмуляторе SDK (я вижу, вы уже пытаетесь использовать аналогичный подход с VirtualBox).
К сожалению, лучший способ протестировать одноранговую сетевую программу в Android с физическими устройствами в это время - если ваше приложение не может быть удовлетворено с помощью метода переадресации портов.
См. также: Проблема 26: Эмулированные андроиды должны иметь возможность общаться через TCP, а Google
Ответ 4
(Повторяя здесь мой ответ в другом месте.)
В теории linux (ядро, лежащее в основе android) имеет mac80211_hwsim драйвер, который имитирует WiFi. Его можно использовать для настройки нескольких устройств WiFi (точка доступа и другое устройство WiFi и т.д.), Которые будут составлять сеть WiFi.
Это полезно для тестирования Wi-Fi-программ под Linux. Возможно, даже под пользовательский режим linux или другие изолированные виртуальные "ящики" с linux.
Теоретически этот драйвер можно использовать для тестов в системах Android, где у вас нет реального WiFi-устройства (или вы не хотите его использовать), а также в каких-то эмуляторах Android. Пожалуй, можно использовать этот драйвер в android-x86 или - для тестирования - в android-x86 запустить в VirtualBox.