Как запустить Wi-Fi однорангового приложения в Android-эмуляторе ..? - PullRequest
22 голосов
/ 13 марта 2012

Я пытаюсь разработать одноранговое приложение для Wi-Fi в Android (4. +).Проблема в том, как это проверить.

Я пытался запустить это приложение в эмуляторе Android.в меню настроек не было возможности настроить wifi, я тоже устал включать wifi с помощью приложения dev tools из эмулятора, но он не работалWi-Fi.

Поэтому я выбрал androidx86 4.0eeepc, используя виртуальную коробку, и устал добавлять устройства, как Wi-Fi, так и Bluetooth (мое приложение использует Bluetooth и Wi-Fi), но было добавлено только устройство Bluetooth, и оно не работало.Но моя виртуальная коробка обнаружила устройства Wi-Fi и Bluetooth.Я просто не мог заставить их работать с виртуальной машиной.

Я пробовал все, как добавление адресов вручную, используя приложение эмулятора терминала в androidx86, и использовал netcfg через командную строку android, но ни один из них не работал.

Пожалуйста, предложите и укажите правильный путь для запуска таких приложений, которые используют Wi-Fi и Bluetooth в Android.

Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 21 марта 2012

Во-первых, убедитесь, что вы включили WiFi Direct в настройках Android для двух экземпляров virtualbox:

Настройки -> Беспроводные сети -> Еще ... -> Wi-Fi direct

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

Я бы попробовал именно то, что вы уже пробовали, естественным образом перейдя от эмулятора к проекту androidx86.Хотя это ненадежно, я бы порекомендовал посмотреть и обдумать это, если вы еще этого не видели: Android: симуляция WiFi в эмуляторе? и Как отключить / включить сеть, переключиться на Wi-Fiв эмуляторе Android? , скорее всего, не будет иметь полного успеха, но может быть достаточно, чтобы сообщить вам, что он работает или будет работать.

Что касается тестирования WiFi-Direct / WiFiP2P без вас самих с устройством / ями, я бы порекомендовал:

  • Попробовать некоторые из игр, как указано выше.И прочитайте тонны журналов.
  • Вы всегда можете скопировать исходный текст для друзей или опубликовать apk на форуме для небольшой группы тестеров.

Конечно, обаэти варианты не являются идеальными, незаметными или быстрыми.Итак, я определенно надеюсь, что вы запустите виртуальные машины VirtualBox с AndroidX86 4.0, как это должно произойти, как только вы проверите эту настройку и подключите точки доступа WiFi: -)

5 голосов
/ 21 марта 2012

Решение на ближайшее будущее:

Это может быть чем-то, что нужно рассмотреть в ближайшем будущем. Samsung использует реальные устройства, а экраны передаются на ваш компьютер.

http://developer.samsung.com/remoteTestLab.do

Согласно электронному письму от samsung, которое я отправил им ранее. На данный момент на Android v4.0 работает только 2 устройства (Galaxy Nexus). К сожалению, они не находятся физически близко друг к другу. (Один в Корее, один в Польше)

Но они планируют обновить существующую Galaxy S2 до версии 4.0. Потому что недавно Samsung выпустила обновление v4.0 для S2. Как только они это сделают, будет много телефонов v4.0.

И вы можете спросить их, какие 2 телефона физически близки, чтобы вы могли проверить Wi-Fi Direct.

--------------------------- РЕДАКТИРОВАТЬ ---------------- ----------------- * ** 1015 1016 * Сейчас существует множество ICS-устройств, которые вы можете протестировать P2P. Уточните у них, какие 2 физически находятся рядом друг с другом.

3 голосов
/ 22 марта 2012

По документам :

Каждый экземпляр эмулятора работает за виртуальным маршрутизатором / брандмауэром сервис, который изолирует его от сети вашего разработчика интерфейсы и настройки и из интернета.

Вы должны использовать перенаправление сети, как описано в Документах разработчика . По сути, вы перенаправляете определенные порты, используя ADB. Поэтому вы не можете проверить некоторые вещи, такие как широковещательные сообщения.

Я пытался делать то, что вы пытаетесь сделать, и - хотя я не скажу, что это невозможно (все возможно в вычислениях с достаточным количеством времени, денег и настойчивости) - я потратил много времени на Это. Вы не можете рассматривать эмулятор Android как обычное сетевое одноранговое устройство. Насколько я смог найти, это форк QEMU, и именно так реализован эмулятор QEMU.

Сам QEMU поддерживает Мост TUN / TAP , но мне так и не удалось заставить его работать с эмулятором Android. Если вы хотите пойти по этому пути, вы можете исследовать работающий Android в эмуляторе QEMU, а не в эмуляторе SDK (я вижу, вы уже пробуете подобный подход с VirtualBox).

К сожалению, лучший способ протестировать одноранговую сетевую программу на Android в это время с физическими устройствами - если только ваше приложение может не справиться с методом переадресации портов.

См. Также: Проблема 26: эмулированные Android должны иметь возможность общаться через TCP и Google

1 голос
/ 06 мая 2012

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

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

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

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

...