Nearby Messages は、付近のデバイスがメッセージのやり取りをするパブリッシュ / サブスクライブ API です データの小さなペイロードです。デバイスがメッセージを公開すると、付近のデバイスは メッセージを受信しますこのガイドでは、Terraform ワークフローの メッセージをパブリッシュし、メッセージをサブスクライブするために、アプリが実装する必要がある やり取りできます
近くにあるデバイスのセットは、2、 Bluetooth。付近のデバイスからトークンを検出すると、 Nearby Messages サーバーにリクエストを送信して、トークンを検証し、 アプリケーションの現在のサブスクリプション セットに応じて配信されます。
アプリは、デバイスの検出に使用するメディアのセットを制御できます。 メディアがトークンのブロードキャストに使用されるかどうか、トークンのスキャンに使用されるかどうか。 デフォルトでは、すべてのメディアでブロードキャストとスキャンが行われます。タスク サブセットやメディアでの検索、ブロードキャストとスキャンのどちらの パブリケーションと Cloud Storage バケットを 。
公開と登録を能動的に行っているときに「Nearby は使用中」と表示される通知 が表示され、Nearby がアクティブであることがユーザーに通知されます。この通知は 1 つ以上のアプリが Nearby を使用しているときにのみ表示され、 Nearby が不要な場合にバッテリーを節約できます。提供するサービス ユーザーに次のオプションを使用できます。
- Nearby を無効にするにはアプリに移動してください。
- アプリでの Nearby の使用を強制的に停止する。
- [Nearby の設定] 画面に移動します。
PublishCallback()
を使用できます。
および SubscribeCallback()
アプリが Nearby の使用を強制的に停止したケースをリッスンします。この
場合、
onExpired()
メソッドがトリガーされます。
Nearby Messages API はバッテリー駆動時間に影響する可能性があるため、 フォアグラウンド アクティビティからのみ使用してください(例外は BLE バックグラウンド サブスクライブ)。
publish()
を呼び出す
および/または subscribe()
Nearby Messages API を使用します。アプリは
対称に unpublish()
および unsubscribe()
(onStop()
)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mMessageListener = new MessageListener() {
@Override
public void onFound(Message message) {
Log.d(TAG, "Found message: " + new String(message.getContent()));
}
@Override
public void onLost(Message message) {
Log.d(TAG, "Lost sight of message: " + new String(message.getContent()));
}
}
mMessage = new Message("Hello World".getBytes());
}
@Override
public void onStart() {
super.onStart();
...
Nearby.getMessagesClient(this).publish(mMessage);
Nearby.getMessagesClient(this).subscribe(mMessageListener);
}
@Override
public void onStop() {
Nearby.getMessagesClient(this).unpublish(mMessage);
Nearby.getMessagesClient(this).unsubscribe(mMessageListener);
...
super.onStop();
}
メッセージの公開
メッセージを公開するには、Nearby.getMessagesClient(Activity).publish()
を呼び出します。
メッセージのバイト配列を渡します。メッセージは 24 時間以内の間隔で
3 KB - これらのメッセージはより迅速に配信できますが、最大 100 KB までは
サポートしています。このサービスは、Google Cloud サービスなど、
保存できます。
必要に応じて PublishOptions.setStrategy()
を呼び出すこともできます。
戦略を設定する
使用できます。
次の例は、publish()
を呼び出して小さいテキストを送信する方法を示しています。
メッセージ:
private void publish(String message) {
Log.i(TAG, "Publishing message: " + message);
mActiveMessage = new Message(message.getBytes());
Nearby.getMessagesClient(this).publish(mActiveMessage);
}
メッセージの公開を停止する
メッセージの公開を停止するには、unpublish()
を呼び出します。少なくとも
アプリは onStop()
で unpublish を呼び出す必要があります。
メソッドを呼び出します。同じ Message
を渡します。
オブジェクト(この例では mActiveMessage
)。
次のコード例は、unpublish()
の呼び出しを示しています。
private void unpublish() {
Log.i(TAG, "Unpublishing.");
if (mActiveMessage != null) {
Nearby.getMessagesClient(this).unpublish(mActiveMessage);
mActiveMessage = null;
}
}
メッセージに登録する
他のデバイスからのメッセージを受信するには、Nearby.getMessagesClient(Activity).subscribe()
を呼び出します。以下に合格する必要があります
MessageListener
サブスクライブされたメッセージを受信できます
必要に応じて SubscribeOptions.setStrategy()
を呼び出すこともできます。
戦略を設定する
使用できます。
次の例は、メッセージのサブスクライブを示しています。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mMessageListener = new MessageListener() {
@Override
public void onFound(Message message) {
Log.d(TAG, "Found message: " + new String(message.getContent()));
}
@Override
public void onLost(Message message) {
Log.d(TAG, "Lost sight of message: " + new String(message.getContent()));
}
}
}
// Subscribe to receive messages.
private void subscribe() {
Log.i(TAG, "Subscribing.");
Nearby.getMessagesClient(this).subscribe(mMessageListener, options);
}
配信停止
配信を停止してデバイス メッセージを受信しないようにするには、
Nearby.getMessagesClient(Activity).unsubscribe()
。同じ
MessageListener
サブスクライブに使用されたオブジェクト(この例では mMessageListener
)。
次のコード例は登録解除を示しています。
private void unsubscribe() {
Log.i(TAG, "Unsubscribing.");
Nearby.getMessagesClient(this).unsubscribe(mMessageListener);
}