java - 安卓穿戴: how to store data in WearableListenerService and access them?

标签 java android service wear-os

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

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

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

但是:我想在 watch 上制作一个小 UI,以便用户可以更新其喝的啤酒数量。

我的问题是:numberOfBeers 是 WearableListenerService 的私有(private)变量。由于我没有找到任何方法来获取对 WearableListenerService 的引用, watch Activity 如何更新此变量? (我尝试重写 onBind 方法,但它是最终的,所以这是不可能的。

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

非常感谢!

最佳答案

我认为您误解了穿戴设备/手机之间的数据通信的工作原理。

每个应用程序都需要实现自己的 WearableListenerService,并且每个应用程序都需要通过数据 api 向其他应用程序发送数据。您的私有(private)变量无效 - 无法从其他应用程序访问它。

通读一下Syncing Data items

从手机应用程序或穿戴式应用程序发送啤酒计数时,您需要使用数据 API 发送:

例如

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);

收到该数据后,您将在 WearableListenerService 中收到通知。

关于java - 安卓穿戴: how to store data in WearableListenerService and access them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536928/

相关文章:

java - 我对这个递归的理解正确吗?

java - Spring MVC @Valid 注解适用于所有 Controller ?

java - 如何为子表定义索引

android - 如何恢复协程的真实调用轨迹?

android - 如何连接到 rild 套接字

php - beanstalkd - 保留但未完成的作业会怎样?

java - 如何在 HQL 中编写连接查询?

android - 是否可以在 Google Play 上更改 Android 应用程序的包名称?

Android 服务未在 ASUS Mobile 中运行

c# - 在 C# 中终止服务的正确方法,始终由 SCM 恢复