2015-06-04 2 views
8

Я играю с классами Android MediaStore и пытался создать очень простое приложение для фотогалереи, когда я заметил, что это два URI содержимого изображения: EXTERNAL_CONTENT_URI и INTERNAL_CONTENT_URI. Сначала я думал, что это относится к местоположению хранилища (внешняя SD или внутренняя память), но после небольшого тестирования это явно не так. Я читал больше об этом here, и это, казалось, указывало, что внутренний контент uri на самом деле является содержимым, которое является внутренним для каждого из приложений на устройстве. Однако я не совсем уверен и хотел получить мнения от более опытных разработчиков, которые больше знакомы с классами MediaStore.Android: достаточно ли EXTERNAL_CONTENT_URI для фотогалереи?

Так что мой главный вопрос: достаточно ли просто запросить EXTERNAL_CONTENT_URI, чтобы получить все важные фотографии? И если можно ответить, что такое INTERNAL_CONTENT_URI и для чего он должен использоваться?

ответ

15

Внешнее и внутреннее хранилище не относятся к местоположению памяти, а относятся к политике конфиденциальности. Внутреннее хранилище означает, что только приложения или процессы системы/суперпользователя могут получить доступ к содержимому.

Внешнее хранилище может быть прочитано каждым приложением, это то, что появляется при подключении телефона к компьютеру, поэтому вы можете думать о нем как о том, что показано всем остальным, следовательно, «внешнему».

У меня есть Samsung S5, например, и он помещает как внутреннее, так и внешнее хранилище в одну и ту же «внутреннюю» флеш-память, они на самом деле являются просто отдельными разделами на одной и той же палочке.

Когда я добавляю SD-карту, он добавляет другое (вторичное) внешнее хранилище.

Каждое устройство Android должно поставляться с внутренним и внешним хранилищем, поэтому устройства, которые поставляют без SD-карты, например, имеют внутреннюю память с внутренней секцией, для внутреннего и внешнего хранилища.

Относительно того, как относится External_Content_URI, он вернет изображения, которые находятся во внешнем хранилище, - более внимательно прочитав документы, он говорит, что он возвращает только для «основного» внешнего тома хранилища. Я просто заметил, что последняя часть в кавычках сама, так что это то, что я буду тестировать в ближайшие несколько дней, если вторичное внешнее хранилище также индексируется или извлекается медиастаром, если кто-то еще не отвечает на это первым.

http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

+0

Я думаю, что это отвечает на вопрос красиво. – idunnololz

+0

так ли носитель носит все или нет?! –

Смежные вопросы