Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

В классе NotePad (ссылка выше) примера проекта 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 также есть некоторые константы, ContentResolver как CURSOR_DIR_BASE_TYPE и CURSOR_ITEM_BASE_TYPE.

Ответ 2

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

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

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

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

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

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

Ответ 3

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