나는 해결책을 찾았다 고 생각합니다.
WifiP2pGroup을 사용하면 연결 끊김 이벤트를받을 때 GO와 피어가 실제로 있는지 확인할 수 있습니다.
실제 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;
}
말해주십시오. 읽어 주셔서 감사합니다.