我试图从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 我希望避免。
有什么想法吗?
答案 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);