[Android] Wear メッセージの送信、MessageApi

Android の handheld から wear へ、あるいは逆の一方方向のメッセージ送信には MessageApi を使います。他には DataAPI があり、これは共通のデータを扱う場合に使用できます。
 
handheld の「send message」ボタンをタップすると wear 側に、「Test Message API:xx」とメッセージが送られる例です。
 

wear_message_1
wear_message_2


 

Android Studio 2.1
Android 6.0
sponsored link

MessageApi

 
projectの作成、Handheldとwearの接続は Android Wear簡単なウェアラブル アプリを作る を参照してください。
 

handheld の設定

 

  1. GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener
    を実装します
  2. GoogleApiClient をBuilderを使いインスタンス生成
    ConnectionCallbacksを追加
  3. onStart() でconnect()
  4. onStop() でdisconnect()
  5. buttonをタップすることにより、Threadを起動してメッセージをDataLayerに送る
  6. 同期してData Layer に接続している全ての Node の一覧からメッセージを送ります

MainActivity.java

 
レイアウトです
activity_main.xml

 
マニフェストでは
Google Play Service のメタデータを追加
<meta-data android:name=”com.google.android.gms.version”
android:value=”@integer/google_play_services_version” />
 
AndroidManifest.xml

 

Wear の設定

 
WearableListenerServiceを継承したクラスを作成して
onMessageReceived()でメッセージを受け取ります
追加で、受け取ったメッセージをLocalBroadcastManagerを使って、MainActivityに反映させます
 
WearService.java

WearMainActivity.java

activity_wear_main.xml

これはsquare 側ですがround側も同様です
rect_activity_wear_main.xml

 
Manifestでは、メッセージを受け取るレシーバーに
BIND_LISTENERを設定します
非推奨になりましたので代用の
com.google.android.gms.wearable.DATA_CHANGED
com.google.android.gms.wearable.MESSAGE_RECEIVED
“wear” android:host=”*” android:pathPrefix=”/path”
を使います。

Manifest.xml

 
References: