1

私はひどく混乱しています...

Androidのドキュメントは非常に優れていますが、範囲が非常に限られています。

を呼び出すデバイスがあるとしますcreateGroup(Channel,GroupInfoListener)。利用可能な場合、onGroupInfoAvailable(WifiP2pGroup)呼び出されます。この時点で、グループ内の唯一のデバイスは所有者です。(create groupを呼び出すデバイスがグループ所有者であるため)

ここから、グループが設定されます。必要なのは、グループをクライアントデバイスでいっぱいにすることだけです。

ここからどのように機能するかはわかりませんが、クライアントがグループに参加できるか、クライアントが参加joinGroupをリクエストできるかを考えていました。この場合、GroupOwnerがjoinGroup参加に使用します。問題は、joinGroupメソッドがないことです。では、ピアはどのようにして自分自身をグループに追加するのでしょうか、それともGroupOwnerはどのようにクライアントをグループに追加するのでしょうか。

4

1 に答える 1

3

1つのデバイスをcreateGroupに使用してから、他のデバイスをに使用しdiscoverPeersますrequestPeers

の場合onPeersAvaiable、次に'を繰り返し、各デバイスでメソッドWifiP2pDeviceを呼び出します。isGroupOwner

取得したグループ所有者のアドレスごとに、クライアントはグループ所有者に送信しますconnect

接続が確立されたら、を呼び出しますrequestConnectionInfo

オブジェクトをonConnectionInfoAvailableチェックして、ブール値がtrueであることを確認する場合。WifiP2pInfogroupFormed

次に、groupOwnerAddressInetAddressを使用して、Javaソケットを使用して2つの間で信号を送信できます。

次に、「BLAH BLAHBLAHUNIQUEVALUE」という文字列をグループ所有者に送信できます。グループの所有者が「IUNDERSTAND」を返す場合、グループの所有者がアプリケーションに属していることがわかります。グループの所有者が他に何かを返すか、応答しない場合、グループの所有者が無効であることがわかります。

API 16以降を使用している場合は、サービスディスカバリを使用して、デバイスがアプリを実行しているかどうかを確認してから接続できます。

于 2013-03-15T15:14:05.213 に答える