2014-05-14 26 views
5

पुराना वाईफाई डायरेक्ट कनेक्शन (कोड में) को भूलने का कोई तरीका है? मुझे समूह की मालिक बनने वाले को बदलने के लिए इसकी आवश्यकता है। मैं groupOwnerIntent = 15 सेट कर रहा हूं और फिर भी समूह के स्वामी नहीं बन रहा हूं।पुराना वाईफाई डायरेक्ट कनेक्शन भूलना

उत्तर

1

यदि आप केवल WiFiP2pManager#removeGroup पर कॉल करने के बजाय मौजूदा WiFiP2p कनेक्शन से डिस्कनाक्ट करना चाहते हैं। कोई फर्क नहीं पड़ता डिवाइस गो या पीयर है।

यदि आप लगातार समूहों को भूलने के बारे में बात कर रहे हैं - तो आप इसे भी हटा सकते हैं। लेकिन यह केवल प्रतिबिंब के माध्यम से हासिल किया जा सकता है। और डिवाइस गो या पीयर भी कोई फर्क नहीं पड़ता।

manager.removeGroup(channel, new WifiP2pManager.ActionListener() { 
    @Override 
    public void onSuccess() { 
     Log.d(TAG, "removeGroup success"); 
     deletePersistentGroup(group); 
    } 

    @Override 
    public void onFailure(int reason) { 
     Log.d(TAG, "removeGroup fail: " + reason); 
    } 
}); 

कहाँ manager WiFip2pManager का एक उदाहरण है। और deletePersistanteGroup(WiFiP2pGroup group) है:

private void deletePersistentGroup(WifiP2pGroup wifiP2pGroup) { 
    try { 

     Method getNetworkId = WifiP2pGroup.class.getMethod("getNetworkId"); 
     Integer networkId = (Integer) getNetworkId.invoke(wifiP2pGroup); 
     Method deletePersistentGroup = WifiP2pManager.class.getMethod("deletePersistentGroup", 
       WifiP2pManager.Channel.class, int.class, WifiP2pManager.ActionListener.class); 
     deletePersistentGroup.invoke(manager, channel, networkId, new WifiP2pManager.ActionListener() { 
      @Override 
      public void onSuccess() { 
       Log.e(TAG, "deletePersistentGroup onSuccess"); 
      } 

      @Override 
      public void onFailure(int reason) { 
       Log.e(TAG, "deletePersistentGroup failure: " + reason); 
      } 
     }); 
    } catch (NoSuchMethodException e) { 
     Log.e("WIFI", "Could not delete persistent group", e); 
    } catch (InvocationTargetException e) { 
     Log.e("WIFI", "Could not delete persistent group", e); 
    } catch (IllegalAccessException e) { 
     Log.e("WIFI", "Could not delete persistent group", e); 
    } 
} 

युपीडी

एक GO आप साथियों को आमंत्रण भेजने से पहले WiFiP2pManager # createGroup() बुलाना चाहिए बन गया है।

संबंधित मुद्दे