Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android wear:如何在WearableListenerService中存储数据并访问它们?_Java_Android_Service_Wear Os - Fatal编程技术网

Java android wear:如何在WearableListenerService中存储数据并访问它们?

Java android wear:如何在WearableListenerService中存储数据并访问它们?,java,android,service,wear-os,Java,Android,Service,Wear Os,我是一名java/android初学者,正在尝试开发一个简单的wear应用程序 我正在使用WearableListenerService来监听来自手机的数据更改,并在可穿戴设备上显示这些数据。 这些数据代表了用户上下文,比如说他在过去5分钟内喝了多少啤酒。 因此,我在手机和手表上都有一个int-beerContext,我正试图同步,以便手表和手机上的显示是相同的 只要手机只设置了啤酒的数量,一切都很好。感谢WearableListenerService收集的数据事件 但是:我想在手表上做一个小U

我是一名java/android初学者,正在尝试开发一个简单的wear应用程序

我正在使用WearableListenerService来监听来自手机的数据更改,并在可穿戴设备上显示这些数据。 这些数据代表了用户上下文,比如说他在过去5分钟内喝了多少啤酒。 因此,我在手机和手表上都有一个
int-beerContext
,我正试图同步,以便手表和手机上的显示是相同的

只要手机只设置了啤酒的数量,一切都很好。感谢WearableListenerService收集的数据事件

但是:我想在手表上做一个小UI,这样用户就可以更新它喝的啤酒的数量

我的问题是:啤酒的数量是WearableListenerService的一个私人变量。由于我没有找到任何方法获取对WearableListenerService的引用,watch活动如何更新此变量?(我试图重写onBind方法,但它是最终的,所以这是不可能的

我将非常感谢一些宝贵的建议,因为我可能在我的应用程序设计中犯了错误


非常感谢!

我认为您误解了服装/手机之间的数据通信方式

每个应用都需要实现自己的WearableListenerService,每个应用都需要通过数据api向另一个应用发送数据。您的私有变量无效-无法从另一个应用访问此应用

通读一遍

从手机应用程序或wear应用程序发送啤酒计数时,您需要使用数据api发送:

e、 g

putDataMapRequestDataMap=PutDataMapRequest.create(“/beerCount”);
getDataMap().putInt(啤酒计数键,啤酒计数);
PutDataRequest=dataMap.asPutDataRequest();
Pendingreult Pendingreult=可穿戴。数据API
.putDataItem(mgoogleapClient,请求);

当您收到数据时,WearableListenerService会通知您。

谢谢您的回答。问题是我希望此beerCount被某个活动访问。例如,onDataChanged{this.beerCount=receivedBeerCount;myNotifManager.notify(xxx,notif)}如果用户单击此notif,则使用notif嵌入挂起的内容打开BeerCountActivity.class,我希望Activy从WearableListenerService启动并获取beerCount并显示它!在这种情况下,您还需要集成消息。活动将启动,并使用数据api将消息发送到手机/佩戴应用程序r等于更新的啤酒计数。然后,接收应用程序将使用数据api数据项发送啤酒计数(或者您甚至可以使用一条消息)。通读而不是使用可穿戴侦听器服务,您可以在活动中使用DataListener。
PutDataMapRequest dataMap = PutDataMapRequest.create("/beerCount");
dataMap.getDataMap().putInt(BEER_COUNT_KEY, beerCount);
PutDataRequest request = dataMap.asPutDataRequest();
PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi
    .putDataItem(mGoogleApiClient, request);