限制wifi Direct中的用户数量

Posted

技术标签:

【中文标题】限制wifi Direct中的用户数量【英文标题】:Restricting the number of users in wifiDirect 【发布时间】:2015-06-28 18:37:40 【问题描述】:

我使用了 android 示例中提供的基本 wifi 演示代码来开发一个可以使用 wifi direct 连接多个设备的应用程序。 我能够连接多个设备并执行从服务器到所有客户端以及从客户端到服务器的双向通信。

WIFI 直接使用以下代码断开连接。但是这个函数会断开所有设备(基本上断开整个组)。

manager.removeGroup(channel, new ActionListener() 

        @Override
        public void onFailure(int reasonCode) 
            Log.d(TAG, "Disconnect failed. Reason :" + reasonCode);
        

        @Override
        public void onSuccess() 

        

    );

我想将用户数限制为 4 个。一次连接的用户数不超过 4 个。 如果第 5 个用户尝试连接,有什么方法可以断开唯一的第 5 个用户(没有其他用户断开连接)?

【问题讨论】:

【参考方案1】:

为了能够限制第五个用户,首先在他们加入时创建一个连接设备列表。连接 4 台设备后,立即尝试 stopPeerDiscovery(WifiP2pManager.Channel c, WifiP2pManager.ActionListener listener)。这将防止其他设备发现您的设备。您也可以在 4 个设备连接后尝试 cancelConnect(WifiP2pManager.Channel c, WifiP2pManager.ActionListener listener)

【讨论】:

Bahi 好的,让我试试这个然后回复你。还有一个疑问 cancelConnect(WifiP2pManager.Channel c, WifiP2pManager.ActionListener listener) 用于取消正在进行的连接我猜。 我正在尝试 stopPeerDiscovery(WifiP2pManager.Channel c,WifiP2pManager.ActionListener 监听器)。尽管 onSuccess 调用对等发现并没有停止。其他设备仍然可以看到该设备..我还需要什么吗???? 你调用stop discovery后其他设备能连接吗? 所以你是说另一台设备仍然能够看到你停止发现的设备并且能够发送连接请求,因此你可能会在你的另一台设备上弹出一个.?? 是的,这正是正在发生的事情。我希望一旦对等发现停止,它就不能被其他设备发现

以上是关于限制wifi Direct中的用户数量的主要内容,如果未能解决你的问题,请参考以下文章

Android 将设备名称重命名为 wifi-direct

32 - 如何克服 Android 中 Wi-Fi Direct 32 对凭据的限制?

32 - 如何克服 Android 中 Wi-Fi Direct 32 对凭据的限制?

WiFi-Direct 在游戏开发中的使用 (Android)

使用 WiFi Direct 或 Air/AS3 中的热点连接应用程序

与 Wifi Direct 的 p2p 连接中的信号强度?