Зачем использовать ContentProvider.getType (), чтобы получить MIME-тип? - PullRequest
15 голосов
/ 18 марта 2011

Глядя на контент-провайдеров, я не совсем понимаю типичное использование метода getType (). Документ API говорит о реализации этого метода, что

Это позволяет [приложениям] получать MIME введите URI при отправке намерения.

Может ли кто-нибудь описать типичный случай, когда его использование было бы особенно полезно?

Ответы [ 2 ]

18 голосов
/ 18 марта 2011

Например, вы пишете контент-провайдер для галереи изображений. В методе 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);
  }
}

Это псевдокод, но я надеюсь, что у вас есть идея.

0 голосов
/ 09 декабря 2015

Насколько я понимаю, вариант использования может быть следующим:

Приложение A содержит поставщика контента.Приложение B использует этого поставщика контента для извлечения всех элементов данных из приложения A. Затем пользователь выбирает один из них (в приложении B), и после этого необходимо запустить действие в приложении A, чтобы показать / отредактировать / удалить выбранный элемент данных.Таким образом, приложение B затем создает намерение, и чтобы убедиться, что действие в приложении A его обрабатывает, вам нужно установить тип (mime-) намерения для типа mime uri (действия show / edit / deleteв приложении А добавил этот тип пантомимы к своим фильтрам намерений).

...