Android WiFi Direct Демо Проблемы - PullRequest
3 голосов
/ 16 февраля 2012

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

Итак, у меня два устройства A и B, оба с android 4.0.3.

Во-первых, с устройства A я отправляю файл B. Ничего плохого здесь, B получает файл.

Затем A отключается от B.

Теперь с устройства B я пытаюсь отправить файл на A.

Но устройством, которое получает файл, является B, а не A.

Чтобы исправить, мне нужно выключить и на обоих устройствах ...

Кроме того, иногда, когда я нажимаю «отключить» и пытаюсь подключиться снова, соединение не удается, и я должен отключить и включить Wi-Fi прямой ...

Кто-нибудь еще испытывал это?

Это потому, что новая технология еще не созрела или, может быть, что-то не так с моей сборкой / драйвером / и т. д. или, может быть, это демо-приложение не поддерживает двусторонний обмен. Любые идеи и / или объяснения будут оценены.

Ответы [ 3 ]

5 голосов
/ 09 мая 2012

При предоставлении экземпляра WifiP2pConfig для функции connect() вы можете установить свойство groupOwnerIntent этого объекта конфигурации следующим образом:

WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = "...";                 // insert ip here
config.groupOwnerIntent = 0;
config.wps.setup = WpsInfo.PBC;
manager.connect(..., config, ...);

Из справочника android :

Это (groupOwnerIntent) целочисленное значение от 0 до 15, где 0 указывает наименьшее желание быть владельцем группы, а 15 указывает на наивысшая склонность быть владельцем группы.

Кроме того, демоверсия, вероятно, многократно отправляет файл на одно и то же устройство, потому что всегда делается сокет-соединение с ip-адресом, полученным из:

WifiP2pInfo.groupOwnerAddress

Если вы хотите поддерживать двунаправленную связь, первым шагом в настройке будет отправка ip-адреса владельца, не являющегося владельцем группы, владельцу группы.

Что касается проблемы с отключением / повторным подключением, у меня, похоже, такие же несоответствия с устройствами на Android 4.0.2.

2 голосов
/ 03 августа 2012

Я некоторое время пытался передать файлы между двумя устройствами с помощью Wi-Fi Direct.Я использую Android SDK WifiDirectDemo в качестве базы.Мой опыт:

GO-адрес всегда один и тот же (по крайней мере, в Samsung Nexus), но это на самом деле не проблема, потому что вы можете использовать это, чтобы узнать, кто является сервером (или клиентом).

Другая странная вещь заключалась в том, что MAC-адреса устройств были разными, когда вы получали его из Android WifiManager и когда вы читали его из файла "/ proc / net / arp".

В конце я это сделал,и вы можете увидеть код здесь .

Я надеюсь, что это поможет вам!

1 голос
/ 19 марта 2012

Я боролся с той же проблемой в последнее время. Я полагаю, это проблема ОС. Чтобы дать вам краткий обзор, я установил приложение Wi-Fi Direct на оба устройства с разными версиями ОС, одно с ОС 4.0.1 и одно с ОС 4.0.2. Время от времени происходит сбой соединения, когда я отключаюсь и снова подключаю устройства. То же самое происходит и при поиске устройств. Но дело в том, что это происходит только на устройстве с ОС 4.0.2. Другое устройство не падает или не отключается.

При поиске этой проблемы я нашел ссылки ниже. Люди обсуждали это и разделяют одну и ту же идею. Видимо это проблема ОС 4.0.2. Я не уверен, что это то же самое для OS 4.0.3, но нет никаких проблем с предыдущей версией OS 4.0.1 наверняка.

Вот ссылки:

http://code.google.com/p/android/issues/detail?id=24402

http://osdir.com/ml/android-platform/2012-01/msg00226.html

...