メッセージの送信と受信

2014/8/6 5037hit

ウェアラブル向けアプリを作る 目次
原文
MessageApiを使用してメッセージを送り以下のアイテムをメッセージにアタッチする。

・ 任意のpayload(オプション)
・メッセージアクションを一意に定めるPath

data itemsと違って、これらは携帯端末とウェアラブルアプリ間で同期されません。メッセージはウェアラブルのActivityを開始するメッセージを送る等、一方通行の通信手段として働き、つまり「撃ちっぱな」のタスクとして作られます。
片方がメッセージを送り、若干の処理をしたあと、応答メッセージを返すことでrequest/responseモデルとしてmessageを使うことも出来ます。

メッセージを送る

以下は接続先にActivityを開始するように支持するメッセージを送る方法の例です。この呼出は同期的に行われメッセージが受け取られるかリクエストがタイムアウトになるまでブロックされます。
メモ:Google Play serviceを非同期や同期で呼び出し使用する方法についてはCommunicate with Google Play Servicesを呼んでください。

Node node; // メッセージを送るために接続されたデバイス
GoogleApiClient mGoogleApiClient;
public static final START_ACTIVITY_PATH = "/start/MainActivity";
...

SendMessageResult result = Wearable.MessageApi.sendMessage(
mGoogleApiClient, node, START_ACTIVITY_PATH, null).await();
if (!result.getStatus().isSuccess()) {
Log.e(TAG, "ERROR: failed to send Message: " + result.getStatus());
}

これはあなたがメッセージを送ることが出来る接続されたノードのリストを取得する簡単な方法です。

private Collection<String> getNodes() {
HashSet <String>results= new HashSet<String>();
NodeApi.GetConnectedNodesResult nodes =
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
for (Node node : nodes.getNodes()) {
results.add(node.getId());
}
return results;
}

メッセージを受信する

メッセージを受信した通知を受けるために、メッセージイベントのリスナーを実装します。これは前述のsend messageを使った例のSTART_ACTIVITY_PATHをチェックして処理を行う例です。

@Override
public void onMessageReceived(MessageEvent messageEvent) {
if (messageEvent.getPath().equals(START_ACTIVITY_PATH)) {
Intent startIntent = new Intent(this, MainActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startIntent);
}
}

これはほんの詳細を実装するほんのさわりです。serviceやActivityで完全なリスナーを実装する方法についてはListening for Data Layer Eventsを見てください。


Except as noted, this content is licensed under Creative Commons Attribution 2.5. For details and restrictions, see the Content License.

前:Assetsを転送する 次:データレイヤーイベントを取り扱う

関連キーワード

[Android][Java][モバイル][IT][翻訳][ウェアラブル]

コメントを投稿する

名前URI
コメント