2015-06-10 4 views
2

Я пытаюсь извлечь все данные из Wearable.DataApi, что соответствует wear:/someAttr/*ли Wearable.DataApi.getDataItems пользователи UriMatcher

мотивации является то, что я использую PutDataRequest.createWithAutoAppendedId, так как я хочу, чтобы избежать верховных данных, записанные в носимом устройство.

Я хотел бы, чтобы соответствовать следующему URI:

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

Но избежать

wear:/someOtherAttr/3/rand1 

Могу ли я использовать подстановочные, чтобы получить данные из DataAPI?

У меня есть обходной путь тока от не обеспечивает URI в Wearable.DataApi.getDataItems приносит все данные, но включает в себя нежелательные DataItems, что я хотел бы избежать.

Любые идеи?

ответ

1

Я нашел решение in a similar question по @dzeikei

С Android official documentation

INT FILTER_PREFIX тип фильтра для getDataItems (GoogleApiClient, Ури, INT), deleteDataItems (GoogleApiClient, Ури, целое): если этот фильтр установлен в , данный 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);