Чтение данных с использованием URI
Теперь вы знаете, что для извлечения данных из поставщика контента нужно использовать URI, предоставляемые этим поставщиком. Поскольку URI, определенные поставщиком контента, уникальны для этого поставщика, важно, чтобы они были документированы и доступны программисту для просмотра и использования. Поставщики, поставляемые с Android, для этих целей определяют константы, представляющие строки URI.
Рассмотрим три URI, определенные во вспомогательных классах Android SDK:
MediaStore.Images.Media.INTERNAL_CONTENT_URI
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
ContactsContract.Contacts.CONTENT URI
Эквивалентные строки URI имеют такой вид:
content://media/internal/images
content://media/external/images
content://com.android.contacts/contacts/
Имея перечисленные URI, можно написать следующий код для извлечения одной строки из поставщика контактов:
Uri peopleBaseUri = ContactsContract.Contacts.CONTENT URI;
Uri myPersonUri = Uri.withAppendedPath(peopleBaseUri, "23");
// Запрос этой записи.
// managedQuery — метод класса Activity
Cursor cur = managedQuery(myPersonUri, null, null, null);
Обратите внимание на способ предварительного определения константы Contacts Contract.Contacts.CONTENT_URI в классе Contacts. Переменная названа peopleBaseUri для указания на то, что если намерение заключается в исследовании людей, то следует использовать URI контента контактов. Разумеется, вы могли бы назначить этой переменной имя contactsBaseUri, если концептуально рассматриваете людей как контакты.
На заметку! Более детальное описание поставщика контента для контактов ищите в главе 30. Также обратите внимание, что Contacts API и ассоциированные с ним константы могут меняться с каждым новым выпуском API-интерфейса. Примеры в этой главе тестировались с использованием Android 2.2 (API 8) и последующих версий.
В этом примере берется корневой URI, к нему добавляется идентификатор определенного человека, а затем производится вызов метода managedQuery.
В запросе с помощью такого URI можно указать порядок сортировки, выбираемые столбцы и конструкцию where. В данном примере все эти дополнительные параметры установлены в null.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.