我正在爲Android穿戴設備創建傳感器記錄器應用程序。日誌記錄正在服務中發生,從可穿戴設備發送數據由服務完成,但在閱讀Android開發人員指南並完成一些測試之後,似乎接收DataMap的首選方法是使用「活動」。我閱讀了WearableListenerService,並將其用於電話和可穿戴設備之間,但之後我發送了一條消息,現在我想發送一個DataMap,就我所知,使用WearableListenerService不容易實現。從可穿戴服務到手持服務的通信[Android]
illustration(謝謝你批准我的油漆技能)顯示了我想要什麼樣的設置,使用服務。我想在底部的箭頭上發送一個DataMap,並創建一個服務來接收DataMap並將數據發送到另一個服務以寫入文件。
這是該服務可穿戴發送的數據圖:
public class SendDataMapToHandheldDataLayer_Thread extends Thread {
private String path;
private DataMap dataMap;
private GoogleApiClient googleClient;
public SendDataMapToHandheldDataLayer_Thread(String cPath, DataMap cDataMap, GoogleApiClient cGoogleClient){
path = cPath;
dataMap = cDataMap;
googleClient = cGoogleClient;
}
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("dataMapSender_Wear", "DataMap successfully sent!");
}else{
Log.v("dataMapSender_Wear", "ERROR: Failed to send DataMap to data layer");
}
}
}
將接收器是什麼樣子?
感謝所有精彩的人回答! :)
感謝您的回答。我以前閱讀過這篇文章,但我可以嘗試再次關注它。如果我陷入更多麻煩,我可能會回到你身邊尋求更多幫助。再次感謝@String! :) –
從您鏈接到的文章中的示例中,可以解釋此行的用途嗎? ConnectionResult connectionResult = client.blockingConnect(30,TimeUnit.SECONDS); –
等待連接到Google Play服務客戶端的30秒完成。您需要該連接才能使用Data API。如果此代碼不在服務中,則可以使用(非阻塞)'connect'調用,但這裏代碼只需等待連接即可。 – String