2014-10-07 2 views
2

У меня есть приложение, которое использует обнаружение службы для подключения нескольких устройств к одному хосту. Я начинаю с установки всего, а затем вызываю WifiP2pManager.discoverServices (..). Затем одно устройство решает рекламировать услугу (вроде игрового лобби). Другие устройства находят это просто прекрасным и могут не создавать проблем.Wifi Direct Group Владелец намерения не работает

Проблема возникает, когда одно устройство уже размещало службу и пытается подключиться к устройству, которое было подключено к его службе (оно сформировало постоянную группу и игнорирует все значения намерений владельца группы). Скажем, у нас есть устройство A, на котором находится служба. Другое устройство, B, подключается к A, а A - владелец группы, а постоянная группа формируется в меню Wifi Direct Settings. Оба заканчивают использование приложения и решают использовать его снова в более позднее время. Теперь B решает разместить службу. A пытается подключиться к B, но в конечном итоге становится владельцем группы, хотя B является тем, у кого есть служба, из-за предыдущего постоянного соединения. В более позднее время я установил GOI (владельца группы) устройства B в 15 (хост) и GOI устройства A в 0, и он полностью игнорирует его. EDIT [На самом деле я только устанавливаю GO GO GO, потому что только одно устройство вызывает соединение.]

Мой вопрос: есть ли способ удалить старые группы из меню настроек программным путем? Или у вас есть другое предложение о том, как решить мою проблему?

Я попытался использовать WifiP2pManager.createGroup (..) для создания новой группы, и это временно устраняет проблему с владельцем группы, но после запуска службы и подключения дважды с тем же устройством она подключается к старой, запоминающейся группе, и не подключается к программе. Это можно легко устранить, не допуская постоянные группы, но, похоже, пока недоступно.

ответ

0

У меня возникла аналогичная проблема. Я разрабатываю простое клиентское приложение для сервера, и эта проблема возникла, когда я попытался переключить ролики. Я разрешил его, вызвав метод removeGroup в серверном приложении каждый раз, когда приложение закрыто. Таким образом, я убедился, что группа была удалена.

0

Всякий раз, когда вы установите groupOwnerIntent к нулю см ниже:

WifiP2pConfig config = new WifiP2pConfig(); 
config.groupOwnerIntent = 0; 

Затем, когда вы пытаетесь подключиться устройство B от устройства А затем устройство А становится клиентом и устройством B стать сервером и наоборот нужно только там не должно быть любая группа, добавленная в запоминаемую группу. Это не будет работать с настройками устройства, поэтому не пытайтесь. Вам нужно создать собственные настройки.

0

использование mP2pManager.removeGroup() в приложении близко

P.S. Я не нашел практического смысла для .groupOwnerIntent. Вы устанавливаете его для подключения устройства. Из документации совершенно неясно, является ли это свойство командного устройства или команды подключаемому устройству

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

  • Нет связанных вопросов^_^