Wearable.DataApi.getDataItems用户UriMatcher

时间:2015-06-10 13:40:24

标签: wear-os android-wear-data-api

我试图从Wearable.DataApi中提取匹配wear:/someAttr/*的所有数据

我的动机是使用PutDataRequest.createWithAutoAppendedId,因为我想避免覆盖可穿戴设备中写入的数据。

我想匹配以下URI:

wear:/someAttr/3/rand1
wear:/someAttr/2/rand2
wear:/someAttr/3/rand6

但要避免

wear:/someOtherAttr/3/rand1

我可以使用通配符从 DataAPI 获取数据吗?

我目前的解决方法是不向 Wearable.DataApi.getDataItems 提供 URI ,它会带来所有数据但包含不需要的 DataItems 我希望避免。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我找到了@dzeikei

的解决方案in a similar question

来自Android official documentation

  

int FILTER_PREFIX getDataItems的过滤器类型(GoogleApiClient,Uri,   int),deleteDataItems(GoogleApiClient,Uri,int):如果这个过滤器是   set,给定的URI将被视为路径前缀和操作   将适用于所有匹配的项目。

所以为了匹配我的例子你会使用

Uri.Builder builder = new Uri.Builder();
builder.scheme(PutDataRequest.WEAR_URI_SCHEME).path("someAttr");
Uri uri = builder.build();
PendingResult<DataItemBuffer> pendingResult = Wearable.DataApi.getDataItems(googleApiClient, uri, DataApi.FILTER_PREFIX);