Android 如何禁止P2P去接受另一个对等方(第二个客户端)的连接?
我正在尝试创建一个P2P连接(组),它在android设备上只有一个所有者和一个客户端 原因是,如果我的GO设备接受第二个对等连接(刚刚按下邀请的窗口),它将收到P2P连接更改事件(断开连接)。我无法区分正常的P2P断开事件和这种情况Android 如何禁止P2P去接受另一个对等方(第二个客户端)的连接?,android,p2p,wifi-direct,Android,P2p,Wifi Direct,我正在尝试创建一个P2P连接(组),它在android设备上只有一个所有者和一个客户端 原因是,如果我的GO设备接受第二个对等连接(刚刚按下邀请的窗口),它将收到P2P连接更改事件(断开连接)。我无法区分正常的P2P断开事件和这种情况 我的第一个解决方案是在第一次连接后忽略所有连接/断开连接事件,但这会造成其他站点影响。我想我找到了一个解决方案 当我们收到断开连接事件时,我们可以使用WifiP2pGroup检查GO和peer是否确实存在 当我们收到真正的p2p断开连接事件时,它无法找到GO或任何
我的第一个解决方案是在第一次连接后忽略所有连接/断开连接事件,但这会造成其他站点影响。我想我找到了一个解决方案 当我们收到断开连接事件时,我们可以使用WifiP2pGroup检查GO和peer是否确实存在 当我们收到真正的p2p断开连接事件时,它无法找到GO或任何对等点,反之亦然 例如:
else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
...
WifiP2pGroup p2pGroup = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_GROUP);
...
if ( p2pGroup != null ) {
if ( p2pGroup.getOwner() != null ) {
Log.d(TAG, "Go address: " + p2pGroup.getOwner().deviceAddress);
}
else {
Log.d(TAG, "p2pGroup getOwner = null");
return false;
}
Collection<WifiP2pDevice> peerList = p2pGroup.getClientList();
ArrayList<WifiP2pDevice> list = new ArrayList<WifiP2pDevice>(peerList);
Log.d(TAG, "p2pGroup list size = " + list.size());
if ( list.size() <= 0 ) {
return false;
}
///*
String host = null;
for (int i = 1; i < list.size(); i++) {
host = list.get(i).deviceAddress;
Log.d(TAG, "peer #" + i + " address: " + host);
}
//*/
}
else {
Log.d(TAG, "p2pGroup = null");
return false;
}
else if(WifiP2pManager.WIFI\u P2P\u CONNECTION\u CHANGED\u ACTION.equals(ACTION)){
...
WifiP2pGroup p2pGroup=intent.getParcelableExtra(WifiP2pManager.EXTRA\u WIFI\u P2P\u组);
...
如果(p2pGroup!=null){
if(p2pGroup.getOwner()!=null){
Log.d(标记“Go address:+p2pGroup.getOwner().deviceAddress”);
}
否则{
Log.d(标记“p2pGroup getOwner=null”);
返回false;
}
集合peerList=p2pGroup.getClientList();
ArrayList=新的ArrayList(peerList);
Log.d(标记,“p2pGroup list size=“+list.size());
if(list.size()