2016-09-05 3 views
3

Я хочу подключиться от одного устройства к другому устройству один за другим. Итак, что я делаю, проверьте, подключено ли мое устройство if(myDevice.status == 0), и если да, я удаляю группу manager.removeGroup(channel, new ActionListener().WIFI P2P REMOVE GROUP

Проблема заключается в том, что после этого несколько раз это делает метод removeGroup() переходит в onFailure() с этой ошибкой: Disconnect failed. Reason :2, что означает «BUSY».

Как я могу остановить фрейм от БИЗНЕСА? Есть ли какой-либо надлежащий способ отключения между двумя устройствами, чтобы без проблем запускать новое соединение с другим?

ответ

3

Wifi P2p создает постоянную группу каждый раз, когда создает новую группу. Так что просто removeGroup() не будет работать. Вам нужно будет использовать метод DeletePersistantGroup (который скрыт). Используйте рефлексию для вызова вызова по этому методу:

private void deletePersistentGroups(){ 
    try { 
     Method[] methods = WifiP2pManager.class.getMethods(); 
     for (int i = 0; i < methods.length; i++) { 
      if (methods[i].getName().equals("deletePersistentGroup")) { 
       // Delete any persistent group 
       for (int netid = 0; netid < 32; netid++) { 
        methods[i].invoke(manager, channel, netid, null); 
       } 
      } 
     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 
Смежные вопросы