1

同じ WiFi AP に接続されているすべてのデバイス間で通信を実装する必要があります。Google Nearby Connections API を使用しています。複数のデバイスに接続して通信できます。しかし、何らかの問題が原因で接続が失われました。Google のドキュメントを確認したところ、「デバイスがホストに接続されると、他のクライアント デバイスにメッセージが送信される可能性があります」と記載されています。

https://developers.google.com/nearby/connections/android/manage-connections

私の疑問は、「他のクライアントデバイスにメッセージを送信する可能性がある」という意味です。

複数のクライアント デバイスがホスト デバイスに接続されている場合、クライアント デバイスはどのようにして他のクライアント デバイスにメッセージを送信できますか?

4

2 に答える 2

1

私はこれを試したことはありませんがNearby.Connections.getLocalEndpointId()、クライアント デバイスでクライアントの endpointId を取得できるようです。ホストはとにかく Client-EndpointIds を知っているため、これが他のクライアントにメッセージを送信するのにどのように役立つかわかりません...

ただし、概念実証として、次のようなことができます。

ホストで:

String payload = client2EndpointId;
Nearby.Connections.sendReliableMessage(mGoogleApiClient, client1EndpointId, payload);

Client1 で:

@Override
public void onMessageReceived(String endpointId, byte[] payload, boolean isReliable) {
    String client2EndpointId = (String) payload;
    Nearby.Connections.sendReliableMessage(mGoogleApiClient, client2EndpointId, messageFromClient1ToClient2);
}

Client2 では:

@Override
public void onMessageReceived(String endpointId, byte[] payload, boolean isReliable) {
    String messageFromClient1 = (String) payload;
}

ホストは client2 の EndpointId をメッセージとして client1 に送信します。次に、Client1 はこの endpointId を使用して client2 にメッセージを送信します。

于 2015-12-04T08:32:30.650 に答える