2013-08-14 3 views
1

У меня есть 3 устройства (я называю их устройствами A, B и C), и я хочу связать их в группе. Теперь я могу установить соединение «один к одному», и он отлично работает.Подключение нескольких устройств в группе Wifi Direct

Однако, хотя я пытаюсь подключить третье устройство, соединение между двумя другими устройствами выходит из строя. Например, сначала я соединяю A и B. После переговоров A становится владельцем группы. Теперь все в порядке. Затем я пытаюсь подключить A и C. Сообщение о приеме сообщения успешно выполняется на C, но «большую часть времени» соединение терпит неудачу, а A и B также отключаются.

Почему я говорю «большую часть времени», потому что он действительно работает, хотя вероятность очень низкая (< 10%).

Кто-нибудь знает, почему это происходит?

ответ

2

Как только A является владельцем группы, он не может инициировать никаких дополнительных подключений. Соединение должно быть инициировано устройством вне группы.

При попытке подключения с помощью wifi-direct вы настраиваете сеть Wi-Fi с владельцем группы в качестве точки доступа. Если вы попытаетесь подключиться снова, вы попытаетесь настроить новую сеть Wi-Fi, которая заставит вас оставить старый.

Краткая версия: каждое устройство может подключаться только один раз.

+0

Но я попытался использовать устройство вне группы, чтобы подключить владельца группы, а соединение между A и B все еще разрывается. –

+0

@TimLin, при запуске соединения с 'WiFiP2pManager.connect', вы передаете ему' WifiP2pConfig'. Одним из полей является 'groupOwnerIntent'. Возможно, вы должны убедиться, что вы установили его для 15 для текущего владельца группы и 0 для нового подключающегося клиента. Я не уверен, как Android выбирает владельца группы без этого поля, но если оба устройства каким-то образом рассматриваются как одинаково легитимные, чтобы стать/остаться владельцем группы, они могут сломать соединение. – Stan

Смежные вопросы