Мне сложно понять разницу между ACTION_OPEN_DOCUMENT
и ACTION_GET_CONTENT
намерениями , когда они используются для открытия открытого документа. Если я поддерживаю Andriod перед KitKat, который не поддерживает ACTION_OPEN_DOCUMENT
, я должен просто установить с помощью ACTION_GET_CONTENT
?
В документации говорится следующее:
ACTION_OPEN_DOCUMENT
не предназначен для заменыACTION_GET_CONTENT
. Тот, который вы должны использовать, зависит от потребностей ваше приложение:
- Используйте
ACTION_GET_CONTENT
, если вы хотите, чтобы ваше приложение просто читало/импортировало данные. При таком подходе приложение импортирует копию данных, таких как файл изображения.- Используйте
ACTION_OPEN_DOCUMENT
, если вы хотите, чтобы ваше приложение долгосрочный, постоянный доступ к документам, принадлежащим документу поставщик. Примером может служить приложение для редактирования фотографий, которое позволяет пользователям редактировать изображения, хранящиеся в поставщике документов.
Не использует ли ACTION_GET_CONTENT
поставщиков документов в KitKat? Что мешает мне иметь "долгосрочный, постоянный доступ" и что именно это означает?
В принципе, в чем разница между следующими двумя фрагментами?
ACTION_GET_CONTENT
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
ACTION_OPEN_DOCUMENT
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("*/*");