How to use DataItem of Android Wear(如何使用 Android Wear 的 DataItem)
问题描述
我想在手持设备和可穿戴设备之间同步偏好.我在手持应用上实现了示例代码.
I want to sync preference between handhelds and wearables. I implement sample code on handheld app.
PutDataMapRequest dataMap = PutDataMapRequest.create("/count");
dataMap.getDataMap().putInt(COUNT_KEY, count++);
PutDataRequest request = dataMap.asPutDataRequest();
PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi
.putDataItem(mGoogleApiClient, request);
System.out.println(dataMap.getDataMap().getInt("COUNT_KEY"));//print 3
然后在可穿戴应用上实现以下代码.但无法检索已保存的计数.
And then implement below code on wearable app. But saved count can't be retrieved.
PutDataMapRequest dataMap = PutDataMapRequest.create("/count");
int count = dataMap.getDataMap().getInt("COUNT_KEY");
System.out.println(count);//print 0
我在实际的安卓手持设备和安卓穿戴模拟器上进行了尝试.我通过 Android Wear 应用的演示卡确认它们已连接.
I tried in actual android handheld device and emulator of Android wear. I confirmed they are connected by using demo cards of Android Wear app.
我还需要什么或者我误解了什么?
What I need more or do I misunderstand something?
推荐答案
使用该代码,您正在尝试创建 第二个 put 请求,而不是读取之前存储的数据.这就是为什么它是空的.
With that code, you are trying to create a second put request, not reading the previously stored data. That's why it's empty.
访问以前存储的数据的方法是使用 DataApi
方法. 例如,您可以使用 Wearable.DataApi.getDataItems()
获取所有存储的数据:
The way to access previously stored data is with the DataApi
methods. For example, you can get all stored data with Wearable.DataApi.getDataItems()
:
PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient);
results.setResultCallback(new ResultCallback<DataItemBuffer>() {
@Override
public void onResult(DataItemBuffer dataItems) {
if (dataItems.getCount() != 0) {
DataMapItem dataMapItem = DataMapItem.fromDataItem(dataItems.get(0));
// This should read the correct value.
int value = dataMapItem.getDataMap().getInt(COUNT_KEY);
}
dataItems.release();
}
});
我用过这个,它可以工作.但是,我自己也遇到了问题,因为我不知道使用 Wearable.DataApi.getDataItem()
访问 特定 数据项的 Uri.所以我发布了这个问题.如果您只是在测试,DataApi.getDataItems()
应该就足够了.
I've used this and it works. However, I'm having a problem myself, as I don't know the Uri to access a specific data item with Wearable.DataApi.getDataItem()
. So I posted this question. If you're just testing though, DataApi.getDataItems()
should suffice.
另一种选择是使用 DataApi.addListener()
收到更改通知到存储.
Another option is to use DataApi.addListener()
to be notified of changes to the storage.
这篇关于如何使用 Android Wear 的 DataItem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用 Android Wear 的 DataItem
基础教程推荐
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01