2013-03-15 2 views
1

Я серьезно спутать ...Как добавить устройство к WifiP2pGroup в Android

андроид документации очень хорошо, но очень ограничена.

Скажите, что у меня есть устройство, которое вызывает createGroup(Channel,GroupInfoListener). Когда доступно, вызывается onGroupInfoAvailable(WifiP2pGroup). На данный момент единственным владельцем группы является владелец. (Поскольку устройство, вызывающее группу create, является владельцем группы)

Здесь создана группа, и все, что должно произойти, - заполнить группу клиентскими устройствами.

Я не уверен, как это работает отсюда, но я думал, что либо клиент может присоединиться к группе, либо joinGroup, либо клиент может запросить присоединиться, и в этом случае GroupOwner использует joinGroup для присоединения. Проблема в том, что нет метода joinGroup. Итак, как, черт возьми, сверстник добавляет себя в группу или как GroupOwner добавляет клиента в группу?

+0

http://stackoverflow.com/a/26242221/1815624 – CrandellWS

ответ

3

Вы должны использовать одно устройство для createGroup, а затем использовать другие устройства для discoverPeers и requestPeers.

Когда onPeersAvaiable, вы затем перебираете по WifiP2pDevice и вызываете метод isGroupOwner на каждом устройстве.

Для каждого получаемого адреса владельца группы клиент будет connect владельцу группы.

Как только соединение будет установлено, вы можете позвонить по номеру requestConnectionInfo.

Когда onConnectionInfoAvailable вы бы указали объект WifiP2pInfo, чтобы убедиться, что логическое значение groupFormed имеет значение true.

Затем, используя groupOwnerAddress InetAddress, вы можете использовать Java Sockets для отправки сигналов между ними.

Затем вы можете отправить строку владельцу группы, указав «BLAH BLAH BLAH UNIQUE VALUE». Если владелец группы возвращает «Я ПОНИМАЮ», то вы знаете, что владелец группы принадлежит вашей заявке. Я владелец группы возвращает что-либо еще или не отвечает, тогда вы знаете, что владелец группы недействителен.

Если вы используете API 16+, вы можете использовать обнаружение службы, чтобы проверить, работает ли устройство под вашим приложением, и THEN connect.