use*_*rld 6 android android-wifi wifi-direct wifip2p
通过Wi-Fi Direct创建群组时,我知道我可以创建一个持久群组.
我的问题是:我可以创建一个持久性组,但每次更改组所有者(即;每次轮组,组所有者将成为组中的一个设备).
另外,在创建持久化组时,只需要第一次接受连接,对吧?
小智 15
您现在可以通过创建新的持久性组WifiP2pManager.createGroup(..).它将创建一个新组并使呼叫设备(A)组所有者可以执行您所描述的操作.唯一的问题是,一旦您创建一个组并连接到另一个设备,其他设备(B)将记住该特定组.如果您尝试在A中创建一个新组(例如,第二次打开该应用程序)并尝试从B进行连接,它将自动加入旧组,而不会显示为在A中的新组中连接它.
编辑:有一种方法可以消灭所有持久性组.它是一个叫做隐藏的函数deletePersistentGroups.这会消灭掉每一个,但它似乎是解决问题的唯一可靠方法.拨打电话后拨打此电话WifiP2pManager.initialize(..),以便您可以使用该频道.
private void deletePersistentGroups(){
try {
Method[] methods = WifiP2pManager.class.getMethods();
for (int i = 0; i < methods.length; i++) {
if (methods[i].getName().equals("deletePersistentGroup")) {
// Delete any persistent group
for (int netid = 0; netid < 32; netid++) {
methods[i].invoke(wifiP2pManager, mChannel, netid, null);
}
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我不太清楚为什么netid上升到31,我会认为这是允许的记忆连接的最大数量.代码来自这里.
| 归档时间: |
|
| 查看次数: |
5658 次 |
| 最近记录: |