2016-04-02 49 views
-1

我正在为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"); 
    } 
} 

}

将接收器是什么样子?

感谢所有精彩的人回答! :)

回答

0

利用基于服务的架构,就像你所述,你的接收器将延长WearableListenerService,如下所示:http://developer.android.com/training/wearables/data-layer/events.html#Listen

+0

感谢您的回答。我以前阅读过这篇文章,但我可以尝试再次关注它。如果我陷入更多麻烦,我可能会回到你身边寻求更多帮助。再次感谢@String! :) –

+0

从您链接到的文章中的示例中,可以解释此行的用途吗? ConnectionResult connectionResult = client.blockingConnect(30,TimeUnit.SECONDS); –

+0

等待连接到Google Play服务客户端的30秒完成。您需要该连接才能使用Data API。如果此代码不在服务中,则可以使用(非阻塞)'connect'调用,但这里代码只需等待连接即可。 – String