这是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
问:为什么永远不会调用方法onDnsSdServiceAvailable
?这是一个浮动的错误,我无法捕捉并描述它的原因。
为了让它再次工作,我必须手动重启Wifi
答案 0 :(得分:0)
当WiFiP2PManager发现服务实例时,将调用DnsSdServiceResponseListener。因此,在将其添加到manager对象后,请确保开始发现服务。
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
}
});
希望这有帮助。