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

Java 32-如何克服Android中Wi-Fi Direct 32对凭据的限制?,java,android,android-wifi,wifi-direct,Java,Android,Android Wifi,Wifi Direct,见-> 这本质上限制了我可以在一个Wi-Fi直接“云”中连接的设备数量 这个问题源于网站上的答案和评论 这个问题不是“如何”连接多个设备的问题,例如在中找到的设备。凭证\u MAX\u NUM是对WifiP2pGroup列表将存储的WifiP2pGroup对象数量的限制。这并不是对单个Wi-Fi Direct组成员的设备数量的限制-理论上这是受组的IP地址范围限制的。它是设备中可存储和使用的持久组数量的界限 WifiP2pGroupList由Wi-Fi P2P服务实例化,并由wpa_请求者填充

见->

这本质上限制了我可以在一个Wi-Fi直接“云”中连接的设备数量

这个问题源于网站上的答案和评论


这个问题不是“如何”连接多个设备的问题,例如在
中找到的设备。凭证\u MAX\u NUM
是对
WifiP2pGroup列表
将存储的
WifiP2pGroup
对象数量的限制。这并不是对单个Wi-Fi Direct组成员的设备数量的限制-理论上这是受组的IP地址范围限制的。它是设备中可存储和使用的持久组数量的界限

WifiP2pGroupList
由Wi-Fi P2P服务实例化,并由wpa_请求者填充,因此通过反射更改
CREDENTIAL_MAX_NUM
的值不是解决方案,因为绑定可能从请求者继承,并且P2P服务驻留在系统服务器进程中

可以通过反射获取列表对象(为此,需要使用动态代理类来实现隐藏方法
WifiP2pManager.PersistentGroupInfoListener
,然后通过IPC将其传递给系统服务),但它的使用受到限制-对于所有组,它都不包含凭据,因此,缓存以供将来使用是不可能的。对列表的修改将仅限于由
WifiP2pManager
公开的方法提供的任何内容

总之,不可能修改
凭证\u MAX\u NUM
,即使修改了,wpa\u请求者中也可能存在上限

private static final int CREDENTIAL_MAX_NUM             =   32;