2017-01-12 8 views
0

DnsSdServiceResponseListener: 방법 <code>onDnsSdServiceAvailable</code>이 왜 호출되지 않을 수있다 : 때때로 DnsSdServiceResponseListener 콜백 그룹 소유자이 콜백 WifiConnection에서 시스템

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); 

의 이것은 기본 useage에 의해 호출되지는

Q를 시작? 그것은 떠 다니는 버그입니다. 나는 그 버그가 무엇을 일으켰는지 설명 할 수 없었습니다. 다시 작동 시키려면 Wifi를 수동으로 재부팅해야합니다.

답변

0

WiFiP2PManager가 서비스 인스턴스를 발견하면 DnsSdServiceResponseListener가 호출됩니다. 따라서 관리자 개체에 추가 한 후에는 서비스 검색을 시작해야합니다.

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 
     } 
    }); 

희망이 있습니다.