Ho difficoltà a capire la differenza tra ACTION_OPEN_DOCUMENT
e ACTION_GET_CONTENT
intent quando vengono utilizzati per aprire un documento aperto. Se sto supportando Andriod prima di KitKat, che non supporta ACTION_OPEN_DOCUMENT
, dovrei semplicemente accontentarmi di ACTION_GET_CONTENT
?Qual è la vera differenza tra ACTION_GET_CONTENT e ACTION_OPEN_DOCUMENT?
Il documentation dice questo:
ACTION_OPEN_DOCUMENT
non è destinato ad essere un sostituto perACTION_GET_CONTENT
. Quello che si dovrebbe usare dipende dalle esigenze del vostra applicazione:
- Usa
ACTION_GET_CONTENT
se si desidera la vostra applicazione ai dati lettura/import semplicemente. Con questo approccio, l'app importa una copia dei dati, ad esempio un file immagine.- Utilizzare
ACTION_OPEN_DOCUMENT
se si desidera che l'app abbia accesso a lungo termine a ai documenti di proprietà di un fornitore di documento . Un esempio potrebbe essere un'app di fotoritocco che consente agli utenti di modificare le immagini memorizzate in un fornitore di documenti.
non Vuol ACTION_GET_CONTENT
utilizzare anche i fornitori di documenti in KitKat? Cosa mi impedirebbe di avere "accesso a lungo termine e persistente" e cosa significa esattamente?
Fondamentalmente, qual è la differenza tra i seguenti due snippet?
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("*/*");
Nella mia esperienza, non c'è mai un dialogo di scelta. Le due azioni risultano nella stessa interfaccia utente a schermo intero. È come un esploratore di file, ma puoi anche scegliere di estrarre un cassetto a sinistra pieno di icone di app. L'unica differenza quando si utilizza ogni azione è questa lista di app a sinistra. Quando passo i tipi MIME delle immagini, GET_CONTENT mi consente di esplorare non solo le mie cartelle come i download, ma ha anche una voce in una diapositiva nel cassetto sinistro per Google Foto, Dropbox, ecc. Se utilizzo OPEN_DOCUMENT, ottengo la stessa identica interfaccia utente, semplicemente non ci sono app nel cassetto di sinistra che vogliono servirmi contenuti diversi da Google Drive. – Stephen
@Stephen: "non c'è mai una finestra di dialogo selettore" - "ACTION_GET_CONTENT" ne avrà una su Android 4.3 e precedenti. "L'unica differenza quando si utilizza ogni azione è questa lista di app a sinistra" - alcune app supportano una delle azioni, altre supportano l'altra. Idealmente, un'app come Dropbox supporterà 'ACTION_OPEN_DOCUMENT' su Android 4.4+, tornando a supportare 'ACTION_GET_CONTENT' su Android 4.3 e versioni precedenti. – CommonsWare
Ho appena installato la mia applicazione su un dispositivo 4.3 e tu hai ragione! Un "raccoglitore" è apparso piuttosto che l'interfaccia di tipo "File Explorer". Grazie per l'aiuto! A proposito, ama i tuoi libri. Sono stato iscritto per anni. – Stephen