2012-12-28 15 views
6

Es scheint, dass Google Drive über eine Aktivität verfügt, die auf die Aktion GET_CONTENT reagiert, aber nicht exportiert wird.Google Drive + ACTION_GET_CONTENT

Gibt es eine andere Methode, die ich in meiner App verwenden kann, um Inhalte aus Drive zu ziehen, ohne den Prozess von Drive zu initiieren? Es ist natürlich eine Option, eine Auswahl-/Auswahlfunktion selbst zu schreiben und die Back-End-APIs zum Auflisten und Öffnen einer Datei zu verwenden, aber dafür würde ich lieber die eigene Benutzeroberfläche von Drive verwenden.

+0

Ugh. Ich habe dies dem Google Drive-Team gemeldet: https://productforums.google.com/d/topic/drive/siKHXdE-ao/discussion – CommonsWare

+0

Danke, Mark. Auf der neusten Version von Drive (1.1.470.15) scheint das Drive-Team die betreffende Aktivität als aktiviert = "false" markiert zu haben. Das löst zumindest die SecurityException, tut aber nichts, um den Workflow zu aktivieren, für den ich gerade arbeite. – tophyr

+0

Das 'android: enabled =" false "' kann temporär sein und darauf warten, dass die App zuerst konfiguriert wird: http://commonsware.com/blog/2012/12/26/disable-unusable-activities.html – CommonsWare

Antwort

2

Google Drive verfügt nur über eine Aktivität, die GET_CONTENT unterstützt, um Geräte vor API 19 zu unterstützen. Gemäß der Storage Access Framework guide muss die Aktivität GET_CONTENT auf API 19+-Geräten deaktiviert werden, um ein Duplikat mit der DocumentsProvider zu verhindern.

Der springende Punkt des Speicherzugangs Framework ist, dass es eine einzige Benutzeroberfläche bietet (gestartet, wenn Sie startActivity mit einem GET_CONTENT, OPEN_DOCUMENT oder OPEN_DOCUMENT_TREE Intent verwenden), die Benutzer von jede Quelle holen können, einschließlich der lokalen Speicher, Google Drive oder eine andere App. Und Ihre App kann dann auf die ausgewählte (n) Datei (en) mit dem exakt gleichen Code zugreifen.

Es gibt keine Funktionalität, mit der Sie angeben können, dass nur ein einzelner Stamm (z. B. Google Drive) angezeigt werden soll. Benutzer können immer aus jedem verfügbaren Stamm auswählen.

+1

Nur ein FYI ... Ihre Antwort ist für eine Frage von 2012, bevor API Level 19 existierte. Ihre Antwort scheint für heute richtig zu sein, aber das Thema von 2012 war eine ganz andere Sache. – CommonsWare