2012-12-28 39 views
6

Sembra che Google Drive abbia un'attività che risponde all'azione GET_CONTENT, ma che non è stata esportata.Google Drive + ACTION_GET_CONTENT

C'è un altro metodo che posso utilizzare nella mia app per estrarre il contenuto da Drive, senza dover avviare il processo da Drive? Scrivere manualmente un'attività di selezione/selettore e utilizzare le API di backend per elencare e aprire un file è ovviamente un'opzione, ma preferirei utilizzare l'interfaccia utente di Drive per farlo.

+0

Ugh. Ho segnalato questo al team di Google Drive: https://productforums.google.com/d/topic/drive/siSKHXdE-ao/discussion – CommonsWare

+0

Grazie, Mark. Nell'ultima versione di Drive (1.1.470.15), sembra che il team di Drive abbia contrassegnato l'attività in questione come abilitata = "false". Questo almeno risolve SecurityException, ma non fa nulla per abilitare effettivamente il flusso di lavoro per cui sto girando. – tophyr

+0

'android: enabled =" false "' può essere temporaneo, in attesa che l'app sia configurata per prima: http://commonsware.com/blog/2012/12/26/disable-unusable-activities.html – CommonsWare

risposta

2

Google Drive ha solo un'attività che supporta GET_CONTENT per supportare dispositivi pre-API 19. Come da Storage Access Framework guide, l'attività GET_CONTENT deve essere disabilitata sui dispositivi API 19+ per impedire un duplicato con DocumentsProvider.

Il punto centrale di Storage di accesso Framework è che fornisce una singola interfaccia utente (avviato quando si utilizza startActivity con un GET_CONTENT, OPEN_DOCUMENT, o OPEN_DOCUMENT_TREE Intent), che consente agli utenti di scegliere da qualsiasi fonte, incluso storage locale, Google Drive o qualsiasi altra app. E la tua app può quindi accedere ai file selezionati usando lo stesso identico codice.

Non esiste alcuna funzionalità che consente di specificare che deve essere visualizzata solo una singola radice (come Google Drive). Gli utenti saranno sempre in grado di selezionare da qualsiasi root disponibile.

+1

Solo una FYI ... la tua risposta è per una domanda del 2012, prima dell'API Livello 19 esisteva. La tua risposta sembra certamente corretta per oggi, ma la questione dal 2012 è stata una questione completamente diversa. – CommonsWare