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
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01