Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android WifiP2pDevice状态在Wifi直接邀请后保持为已邀请状态_Android_Wifi Direct_Wifip2p - Fatal编程技术网

Android WifiP2pDevice状态在Wifi直接邀请后保持为已邀请状态

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

我正在编写Wifi Direct游戏,但当一个用户拒绝加入连接的邀请时,WifiP2pDevice状态出现问题

  • 电话A启动与电话B的连接
  • 手机B状态变为邀请状态(如手机A上所示)
  • 电话B拒绝来自电话A的邀请
  • 电话B状态仍被邀请(如电话A上所示)
  • 是否应该将手机上显示的状态切换回可用状态? 我已刷新可用设备列表,但状态保持不变。即使我重新启动应用程序,它仍然显示手机B的状态为已邀请

    这是基于WifiDirect的API实现的吗?还是我遗漏了什么

    编辑:更多信息


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