参见->https://android.googlesource.com/platform/frameworks/base/+/b267554/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java#34 https://android.googlesource.com/platform/frameworks/base/+/b267554/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java#34
private static final int CREDENTIAL_MAX_NUM = 32;
这本质上限制了我可以在单个 Wi-Fi Direct“云”中连接的设备数量。
这个问题源于以下答案和评论https://stackoverflow.com/a/26242221/1815624 https://stackoverflow.com/a/26242221/1815624
这个问题不是“如何”连接多个设备的问题,例如在适用于多个设备的 WiFi Direct https://stackoverflow.com/q/24112288/1815624
CREDENTIAL_MAX_NUM
是对数量的限制WifiP2pGroup
的对象WififP2pGroupList
将存储。它对可以成为单个 Wi-Fi Direct 组成员的设备数量没有限制 - 理论上这受该组的 IP 地址范围的限制。它是设备可以存储和使用的持久组数量的限制。
WifiP2pGroupList
由 Wi-Fi P2P 服务实例化并由 wpa_supplicant 填充,因此更改CREDENTIAL_MAX_NUM
通过反射并不是一个解决方案,因为绑定可能是从请求者继承的,并且 P2P 服务驻留在系统服务器进程中。
可以通过反射获取列表对象(为此需要使用动态代理类来实现隐藏方法WifiP2pManager.PersistentGroupInfoListener
然后通过 IPC 将其传递给系统服务),但它的使用是有限的 - 对于所有组,它不会包含凭据,因此不可能缓存以供将来使用。列表的修改将仅限于由公开的方法提供的任何内容WifiP2pManager
.
总结一下,修改CREDENTIAL_MAX_NUM
这是不可能的,即使是,wpa_supplicant 中也可能存在上限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)