Data Items它被用来同步手机和wear数据接口,一个Date Items通常包含以下几个部分:
Payload
字节数组。无论你需要设置数据类型,我们同意对象序列化和反序列化,大小不能超过100k。
Path
唯一的字符串。必须以正斜杠開始(比如,“/path/to/ data”)
通常不须要直接实现DataItem,仅仅须要:
1、创建PutDataRequest对象。指定一个路径字符串差别该item
2、调用setData()设置payload
3、调用DataApi.putDataItem(),请求系统创建一个data item
4、当请求data item时候,系统会返回一个正确的实现了接口的data item对象
使用setData()使用原始字节,建议使用一个data map。能够暴露一个易于使用的类似于bundle的数据
使用Data Map同步数据
假设能够的话。使用DataMap类,能够使用data items类似Bundle,并且兑现序列化和反序列化帮你完毕,你能够操作数据使用键值对。
使用data map 的步骤
1 创建PutDataMapRequest对象,设置data item的路径
2 调用 PutDataMapRequest.getDataMap()创建data
map,能够设置数据
3 设置须要的数据使用put...()方法,如
putString()
4
调用 PutDataMapRequest.asPutDataRequest()创建
PutDataRequest对象
5
调用 DataApi.putDataItem()
请求系统创建data
item
假设手机与wear没有连接,则缓存等到连接后同步
例如以下代码所看到的
PutDataMapRequest dataMap = PutDataMapRequest.create("/count");
dataMap.getDataMap().putInt(COUNT_KEY, count++);
PutDataRequest request = dataMap.asPutDataRequest();
PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi
.putDataItem(mGoogleApiClient, request);
监听Data Item时间
假设一方数据层使data item发生变化,你可能须要去通知不论什么变化的数据连接,你能够实现这些通过时间一个监听data item的事件,以下是个样例。
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
for (DataEvent event : dataEvents) {
if (event.getType() == DataEvent.TYPE_DELETED) {
Log.d(TAG, "DataItem deleted: " + event.getDataItem().getUri());
} else if (event.getType() == DataEvent.TYPE_CHANGED) {
Log.d(TAG, "DataItem changed: " + event.getDataItem().getUri());
}
}
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。