32 - 如何克服 Android 中 Wi-Fi Direct 32 对凭据的限制?
Posted
技术标签:
【中文标题】32 - 如何克服 Android 中 Wi-Fi Direct 32 对凭据的限制?【英文标题】:32 - How to overcome the Wi-Fi Direct 32 limit on credentials in Android? 【发布时间】:2016-03-24 22:25:03 【问题描述】:见-> 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://***.com/a/26242221/1815624的答案和cmets
这个问题不是“如何”连接多个设备的问题,例如WiFi Direct for multiple devices
【问题讨论】:
【参考方案1】:CREDENTIAL_MAX_NUM
是对WififP2pGroupList
将存储的WifiP2pGroup
对象数量的限制。可以成为单个 Wi-Fi Direct 组成员的设备数量不受限制 - 这在理论上受组的 IP 地址范围的限制。它是设备可以存储和使用的持久组数量的限制。
WifiP2pGroupList
由 Wi-Fi P2P 服务实例化并由 wpa_supplicant 填充,因此通过反射更改 CREDENTIAL_MAX_NUM
的值不是解决方案,因为绑定可能继承自 supplicant 和 P2P 服务驻留在系统服务器进程中。
可以通过反射获取列表对象(需要使用动态代理类实现隐藏方法WifiP2pManager.PersistentGroupInfoListener
,然后通过IPC将其传递给系统服务),但是它的使用是有限的——对于它不包含凭据的所有组,因此无法缓存以供将来使用。列表的修改将仅限于 WifiP2pManager
公开的方法提供的任何内容。
总而言之,修改CREDENTIAL_MAX_NUM
是不可能的,即使是这样,wpa_supplicant 中也可能存在上限。
【讨论】:
以上是关于32 - 如何克服 Android 中 Wi-Fi Direct 32 对凭据的限制?的主要内容,如果未能解决你的问题,请参考以下文章
我该如何克服这个问题:ANDROID_SUPPORT_V4_VERSION in phonegap build
如何通过 Wi-Fi 调试 Android 6.0? (netcfg 问题)
如何以编程方式连接到 Android 中的特定 Wi-Fi 网络?