2017-01-12 28 views
0

Это основа Useage из DnsSdServiceResponseListenerWifiDirect: Иногда DnsSdServiceResponseListener обратного вызова не вызывается системой

WifiP2pManager manager = (WifiP2pManager) context.getSystemService(Context.WIFI_P2P_SERVICE); 
    WifiP2pManager.Channel channel = manager.initialize(context, context.getMainLooper(), null); 

    manager.setDnsSdResponseListeners(channel, new WifiP2pManager.DnsSdServiceResponseListener() { 
     @Override 
     public void onDnsSdServiceAvailable(String instanceName, String registrationType, WifiP2pDevice srcDevice) { 
      Log.d("OK" , "called"); 
     } 
    }, null); 

В этом обратного вызова WifiConnection с владельцем группы начинается

Q: нет Почему метод onDnsSdServiceAvailable может быть не вызывается? Это плавающая ошибка, которую я не мог поймать и описать, что она вызывает. Чтобы заставить его работать снова, я должен перезагрузить Wifi вручную.

ответ

0

Вызов DnsSdServiceResponseListener, когда WiFiP2PManager обнаруживает экземпляр службы. Поэтому, добавив его в объект-менеджер, обязательно начните открывать службы.

manager.discoverServices(mChannel, new WifiP2pManager.ActionListener() { 

     @Override 
     public void onSuccess() { 
      // Success! 
     } 

     @Override 
     public void onFailure(int code) { 
      // Command failed. Check for P2P_UNSUPPORTED, ERROR, or BUSY 
     } 
    }); 

Надеюсь, что это поможет.

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

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