Подтвердить что ты не робот

Как запустить приложение 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.

Спасибо заранее.

4b9b3361

Ответ 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.