2013-03-15 6 views
1

내가 심각하게 혼동하고있어에서 WifiP2pGroup에 장치를 추가 할 수 있습니다.어떻게</p> <p>안드로이드 문서는 매우 좋은,하지만 매우 범위가 제한되어 ... 안드로이드

createGroup(Channel,GroupInfoListener)이라고하는 장치가 있다고 해봅시다. 사용 가능한 경우 onGroupInfoAvailable(WifiP2pGroup)이 호출됩니다. 이 시점에서 그룹의 유일한 장치는 소유자입니다. (그룹 만들기를 호출하는 장치가 그룹 소유자이기 때문에)

여기에서 그룹이 설정되고 클라이언트 장치로 그룹을 채워야합니다.

여기에서 어떻게 작동하는지 잘 모르겠지만 클라이언트가 joinGroup으로 그룹에 가입하거나 클라이언트가 가입을 요청할 수 있다고 생각했습니다.이 경우 GroupOwner는 joinGroup을 사용하여 가입합니다. 문제는, joinGroup 방법이 없다는 것입니다. 그렇다면 피어가 그룹에 자신을 추가하는 방법이나 GroupOwner가 클라이언트를 그룹에 추가하는 방법은 무엇입니까?

+0

http://stackoverflow.com/a/26242221/1815624 – CrandellWS

답변

3

createGroup에는 하나의 장치를 사용하고 discoverPeersrequestPeers에는 다른 장치를 사용합니다.

onPeersAvaiable 일 때 WifiP2pDevice을 반복하고 각 장치에서 isGroupOwner 메서드를 호출하십시오.

얻은 각 그룹 소유자 주소에 대해 클라이언트는 그룹 소유자에게 connect이됩니다.

일단 연결되면 requestConnectionInfo으로 전화하십시오.

onConnectionInfoAvailableWifiP2pInfo 개체를 검사하여 groupFormed 부울이 true인지 확인하십시오.

그런 다음 groupOwnerAddress InetAddress를 사용하여 Java 소켓을 사용하여 둘 사이에서 신호를 보낼 수 있습니다.

그러면 'BLAH BLAH BLAH UNIQUE VALUE'라는 문자열을 그룹 소유자에게 보낼 수 있습니다. 그룹 소유자가 '알 수 없음'을 반환하면 그룹 소유자가 귀하의 신청서에 속한다는 것을 알게됩니다. 그룹 소유자가 다른 것을 반환하거나 응답하지 않으면 그룹 소유자가 유효하지 않음을 알게됩니다.

API 16+를 사용하는 경우 서비스 검색을 사용하여 기기에서 앱을 실행 중인지 확인한 다음 THEN을 연결할 수 있습니다.