私は、重いプロセスのいくつかを実行してAPI呼び出しを行うための電話コンパニオンアプリを持っているWearのアプリケーションを作成中です。Android Wear to Handset Communication
は、これまでのところ、2つのデバイス間の通信に関しては、私はこのチュートリアルを次されている - http://android-wear-docs.readthedocs.io/en/latest/data.html
これは、携帯電話が時計と通信することができることを私に残しているが、今、私はどのように私思ったんだけど他の方法でそれを複製します。
私はWearアプリに持っている現在のコードは、(別々のリスナークラスはまた、電話や時計の上に存在している)、このようなものです:
public void sendTestMessage(View view)
{
String WEARABLE_DATA_PATH = "/wearable_data";
DataMap dataMap = new DataMap();
dataMap.putString("WATCH2PHONE TEST MESSAGE EVENT!", "1");
new SendToDataLayerThread(WEARABLE_DATA_PATH, dataMap).start();
}
class SendToDataLayerThread extends Thread
{
String path;
DataMap dataMap;
SendToDataLayerThread(String p, DataMap data)
{
path = p;
dataMap = data;
}
public void run()
{
PutDataMapRequest putDMR = PutDataMapRequest.create(path);
putDMR.getDataMap().putAll(dataMap);
PutDataRequest request = putDMR.asPutDataRequest();
DataApi.DataItemResult result = Wearable.DataApi.putDataItem(googleClient, request).await();
if (result.getStatus().isSuccess())
{
Log.v("myTag", "DataMap: " + dataMap + " sent successfully to data layer ");
}
else
{
Log.v("myTag", "ERROR: failed to send DataMap to data layer");
}
}
}
リスナクラス(時計のため、携帯電話のバージョンは同じです) :
public class ListenerService extends WearableListenerService
{
@Override
public void onDataChanged(DataEventBuffer dataEvents)
{
DataMap dataMap;
for (DataEvent event : dataEvents)
{
Log.v("myTag", "DataMap received on device: " + DataMapItem.fromDataItem(event.getDataItem()).getDataMap());
}
}
}
したがって、テストメッセージを送信すると、メッセージがレイヤーに送信され、送信されますが時計のリスナーサービスによって受信されます。
私は "String WEARABLE_DATA_PATH ="/wearable_data ";"と仮定しています。それが時計によって受け取られてしまう原因になっていますが、それを正しく送信するためには何を変更するべきかわかりません。