Я новичок в андроиде. У меня есть одно сомнение в контенте и распознавателе. У меня есть собственное приложение поставщика контента, и я хочу получить доступ к его базе данных из другого приложения. Я создал uri и дал разрешение в манифесте. При вставке нового значения из другого [Content Resolver] как мое приложение-распознаватель узнает имена столбцов ContentProvider, потому что мы должны создать объект ContentValues, и при вставке данных требуется имя столбца... Пожалуйста, помогите
Как узнать имя столбца базы данных контент-провайдера из другого приложения [преобразователь контента]
Ответы (2)
Если стороннее приложение делает свой ContentProvider общедоступным, у него, вероятно, есть документация о том, как получить к нему доступ, в противном случае вам следует связаться с автором приложения.
В противном случае вы можете использовать нулевую проекцию для запроса данных от того же поставщика контента и распечатать все столбцы в полученном вами курсоре.
Стандартный подход в реализации ContentProvider
заключается в создании дополнительного класса "контракт", который инкапсулирует всю информацию, необходимую для связи с ContentProvider
(независимо от того, экспортируется этот ContentProvider
или нет).
Если ваш ContentProvider
должен быть доступен из других приложений, вы экспортируете его и публикуете соответствующий класс «контракта» для клиентов (например, публикуете JavaDoc на веб-сайте, отправляете по почте и т. д.).
Примером класса «контракт», найденного в AOSP, является класс ContactsContract
. Его JavaDoc публикуется здесь. Его источник можно найти здесь.