Зачем использовать ContentProvider.getType() для получения типа MIME?
Глядя на контент-провайдеров, я не совсем чист от типичного использования метода getType(). В документе API говорится о реализации этого метода, который
Это позволяет [приложениям] извлекать MIME тип для URI при отправке намерения.
Может ли кто-нибудь описать типичный случай, когда его использование было бы особенно полезно?
Ответы
Ответ 1
Например, вы пишете контент-провайдера для галереи изображений. Вы должны указать в методе getType(), который вы предоставляете изображениями - jpg или png. Итак, когда вы запустите галерею изображений, она сможет отображать встроенные изображения и изображения, предоставленные вашим поставщиком контента.
В псевдокоде пользователь contentProvider делает что-то вроде:
List contentProviders = getProviders();
List resultProviders;
final Type type = Type.JPG;
for (ContentProvider provider : contentProviders) {
if (type == provider.getType()) {
resultProviders.add(provider);
}
}
Это псевдокод, но я надеюсь, что у вас возникнет эта идея.
Ответ 2
Как я понимаю, использование может быть следующим:
В приложении А содержится поставщик контента. Приложение B использует этого поставщика контента для извлечения всех элементов данных из приложения A. Затем пользователь выбирает один из них (в приложении B), после чего следует активировать действие в приложении A для показа/редактирования/удаления выбранного элемента данных. Таким образом, приложение B создает намерение, и чтобы убедиться, что действие в приложении A обрабатывает его, вам нужно установить тип (mime-) намерения на тип mime uri (действия show/edit/delete в App A добавила этот тип mime в свои фильтры намерения).