Android 访问Android Wear数据层Api——同步Data Items .

本文介绍如何使用DataItems在手机和穿戴设备间同步数据。主要内容包括DataItems的基本组成、使用步骤及注意事项,同时提供了使用DataMap类简化数据同步的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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没有连接,则缓存等到连接后同步

如下代码所示

  1. PutDataMapRequest dataMap = PutDataMapRequest.create("/count");  
  2. dataMap.getDataMap().putInt(COUNT_KEY, count++);  
  3. PutDataRequest request = dataMap.asPutDataRequest();  
  4. PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi  
  5.         .putDataItem(mGoogleApiClient, request);  
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的事件,下面是个例子。


  1. @Override  
  2. public void onDataChanged(DataEventBuffer dataEvents) {  
  3.     for (DataEvent event : dataEvents) {  
  4.         if (event.getType() == DataEvent.TYPE_DELETED) {  
  5.             Log.d(TAG, "DataItem deleted: " + event.getDataItem().getUri());  
  6.         } else if (event.getType() == DataEvent.TYPE_CHANGED) {  
  7.              Log.d(TAG, "DataItem changed: " + event.getDataItem().getUri());  
  8.         }  
  9.     }  
  10. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值