Что такое атрибут mimeType в <data>?

Я действительно не могу понять значение mimeType. Я знаю, что он существует, так что метод getType в contentprovider знает, что ему нужно. Но я все еще не уверен, что это значит или как он используется.

Solutions Collecting From Web of "Что такое атрибут mimeType в <data>?"

Любой ContentProvider обычно определяет тип обрабатываемых данных (например, NodePadProvider обрабатывает тип данных Notes определенный во внутреннем классе NodePad ). Тип MIME – это стандартизованный способ определить этот тип данных, присвоив ему уникальное имя. Это позволяет передавать тип данных в код, который работает с ContentProvider стандартным образом.

Это также помогает ContentProvider который обрабатывает несколько различных типов данных, чтобы поддерживать организованность, например, RailwayContentProvider может обрабатывать поезда, станции и билеты и может использовать MIME-тип, чтобы рассказать обо всем.

Почему MIME-типы?

Использование типов MIME является естественным следствием, когда вы думаете о том, как доступ к ContentProvider осуществляется через URI, то есть что-то вроде URL-адреса в Интернете. Так же, как и в Интернете, существуют типы MIME, такие как text/html для веб-страниц и image/jpeg для изображений .jpg. Android требует, чтобы вы определяли пользовательский тип MIME для любого типа данных, ContentProvider обрабатывает ваш ContentProvider .

Пример пользовательского типа MIME

В классе NodePad (связанный выше) проекта примера NotePad вы найдете:

 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.note"; 

Это поле определяет настраиваемый тип MIME (распознаваемый шаблоном type/subtype ).

Android предлагает вам использовать vnd.android.cursor.dir/... в качестве первой части для любого типа «списка каталогов» (несколько элементов) и vnd.android.cursor.item/... в качестве первой части для любого типа Одного элемента.

Для подтипа снова предлагается запустить его с помощью vnd. А затем добавить что-то вроде вашего имени / имени обратного доменного имени, например vnd.android.cursor.item/vnd.com.mydomain.myapp.mydata

Чтобы избежать всех этих строк vnd... в вашем коде, есть также некоторые константы в ContentResolver такие как CURSOR_DIR_BASE_TYPE и CURSOR_ITEM_BASE_TYPE .

Mimetype Многофункциональные расширения электронной почты Интернета сообщают вам описание содержимого

Текст в наборах символов, отличных от ASCII

Нетекстовые вложения

Тело сообщений с несколькими частями

Информация заголовка в наборах символов, отличных от ASCII

А также является ли это Pdf / epub / html / text и т. Д.

Если вы имеете в виду тип mime, чтобы сообщить получающему сущности, как интерпретировать файл. Точно так же, как вы видите .txt и знаете, что файл является текстовым файлом. Таким образом, вы можете обслуживать файл с .anyExtension и иметь браузер, который все еще знает, что это .txt