如何在WifiDirect Android中停止对等点发现
作者:互联网
我试图使用下面的代码直接在wifi中停止对等体发现.
public void StopPeerDiscovery(){
manager.stopPeerDiscovery(channel, new ActionListener() {
@Override
public void onSuccess() {
Log.d(WiFiDirectActivity.TAG,"Stopped Peer discovery");
}
@Override
public void onFailure(int i) {
Log.d(WiFiDirectActivity.TAG,"Not Stopped Peer discovery");
}
});
}
我能够在日志中看到成功消息(停止对等点发现).但其他设备仍然能够在同行发现中查看它.
我在这里做错了吗?请指教.
谢谢
解决方法:
这不是问题.实际上你对onSuccess的解释是错误的.此onSuccess不会告诉您对等方发现已停止,而是表示您的请求已成功发送到负责上述调用的硬件/框架,它将异步停止发现并通知您(如前所述).同样,它的失败只是告诉你的调用没有成功到达框架.
您需要为WIFI_P2P_DISCOVERY_CHANGED_ACTION意图注册BroadcastReceiver.正如您可以在文档中看到的那样,额外的EXTRA_DISCOVERY_STATE可以让您知道对等发现的发现是否已停止.
if (WifiP2pManager.WIFI_P2P_DISCOVERY_CHANGED_ACTION.equals(intent.getAction()))
{
int state = intent.getIntExtra(WifiP2pManager.EXTRA_DISCOVERY_STATE, 10000);
if (state == WifiP2pManager.WIFI_P2P_DISCOVERY_STARTED)
{
// Wifi P2P discovery started.
}
else
{
// Wifi P2P discovery stopped.
// Do what you want to do when discovery stopped
}
}
标签:android,p2p,wifi-direct,wifip2p 来源: https://codeday.me/bug/20190528/1169774.html