I'm having a hard time understanding the difference between ACTION_OPEN_DOCUMENT
and ACTION_GET_CONTENT
intents when they are used to open an openable document. If I am supporting Andriod before KitKat, which does not support ACTION_OPEN_DOCUMENT
, should I just settle with ACTION_GET_CONTENT
?
The documentation says this:
ACTION_OPEN_DOCUMENT
is not intended to be a replacement forACTION_GET_CONTENT
. The one you should use depends on the needs of your app:
- Use
ACTION_GET_CONTENT
if you want your app to simply read/import data. With this approach, the app imports a copy of the data, such as an image file.- Use
ACTION_OPEN_DOCUMENT
if you want your app to have long term, persistent access to documents owned by a document provider. An example would be a photo-editing app that lets users edit images stored in a document provider.
Doesn't ACTION_GET_CONTENT
also use document providers in KitKat? What would prevent me from having "long term, persistent access" and what exactly does that mean?
Basically, what is the difference between the following two snippets?
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("*/*");