gpt4 book ai didi

android - Android Wear的DataItem使用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:37 24 4
gpt4 key购买 nike

我想在手持设备和可穿戴设备之间同步偏好设置。我实现 sample code在手持应用程序上。

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

然后在可穿戴应用程序上实现以下代码。但是无法检索保存的计数。

 PutDataMapRequest dataMap = PutDataMapRequest.create("/count");
int count = dataMap.getDataMap().getInt("COUNT_KEY");
System.out.println(count);//print 0

我在实际的 Android 手持设备和 Android Wear 模拟器中进行了尝试。我使用 Android Wear 应用程序的演示卡确认它们已连接。

我还需要什么还是我误解了什么?

最佳答案

使用该代码,您正在尝试创建一个第二个放置请求,而不是读取之前存储的数据。这就是为什么它是空的。

访问以前存储的数据的方法是使用 DataApi方法。 例如,您可以使用 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。所以我发布了this question .如果您只是进行测试,DataApi.getDataItems() 就足够了。

另一种选择是使用 DataApi.addListener()收到有关存储更改的通知。

关于android - Android Wear的DataItem使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24595679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com