Android WifiP2pDevice状态在Wifi直接邀请后保持为已邀请状态
我正在编写Wifi Direct游戏,但当一个用户拒绝加入连接的邀请时,WifiP2pDevice状态出现问题Android WifiP2pDevice状态在Wifi直接邀请后保持为已邀请状态,android,wifi-direct,wifip2p,Android,Wifi Direct,Wifip2p,我正在编写Wifi Direct游戏,但当一个用户拒绝加入连接的邀请时,WifiP2pDevice状态出现问题 电话A启动与电话B的连接 手机B状态变为邀请状态(如手机A上所示) 电话B拒绝来自电话A的邀请 电话B状态仍被邀请(如电话A上所示) 是否应该将手机上显示的状态切换回可用状态? 我已刷新可用设备列表,但状态保持不变。即使我重新启动应用程序,它仍然显示手机B的状态为已邀请 这是基于WifiDirect的API实现的吗?还是我遗漏了什么 编辑:更多信息 在BroadcastReceiver
在BroadcastReceiver中,当目的是WifiP2pManager.WIFI\u P2P\u PEERS\u CHANGED\u操作时,管理器使用实现PeerListener的片段请求对等方,该片段仅打印可用设备的列表和这些设备的信息(包括状态)。因此,当电话A使用manager.connect()发送邀请时,它会将状态更改为“已邀请”。但如果电话B拒绝,状态仍为邀请状态。这些状态在notifyDataSetChanged()上触发。这不是一个关于代码的问题,而是wifi direct如何确定和更改设备的状态。但如果需要,我可以提供代码。如果状态为“已邀请”,您可以取消连接。
您使用什么来查看邀请/可用?请解释更多,问题不清楚。更新我的问题以提供更多信息。谢谢看一下如果你搜索updateStatus你会看到状态是如何变化的。。。从我在谢绝后的代码中看到,没有状态更新,这就是状态仍然被邀请的原因。希望有帮助。谢谢你的链接。在下降之后,似乎没有任何状态更新发生。第1707行上还写着://TODO:当邀请被拒绝时,计算将状态更新为“已拒绝”。我想这就解决了这个问题。嘿@这四个男人。。。我正在研究wifi p2p。我也面临同样的问题。除此之外,一旦状态被邀请,下一次我尝试发送连接请求时,它将失败。此外,对等点列表的结果显示新输入的设备,但如果任何设备超出范围,则不清除列表。请帮忙
if (fragment.getDevice().status == WifiP2pDevice.AVAILABLE
|| fragment.getDevice().status == WifiP2pDevice.INVITED) {
manager.cancelConnect(channel, new ActionListener() {
@Override
public void onSuccess() {
Toast.makeText(WiFiDirectActivity.this, "Aborting connection",
Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int reasonCode) {
Toast.makeText(WiFiDirectActivity.this,
"Connect abort request failed. Reason Code: " + reasonCode,
Toast.LENGTH_SHORT).show();
}
});
}