我是一名java/android初学者,正在尝试开发一个简单的穿戴应用程序。
我正在使用 WearableListenerService 来监听来自手机的数据更改并将这些数据显示在可穿戴设备上。
这些数据代表了用户上下文,比如说他在过去 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/