In unserer App versuchen wir, Dateien von anderen Dateispeicher-Apps zu bekommen. Öffnen Sie zum Beispiel unsere App, starten Sie die App-Auswahl, wählen Sie Dropbox, wählen Sie die Datei, öffnet die Datei in unserer App.Wie kann Google Drive mit queryIntentActivities() angezeigt werden?
Ich habe diese Absicht festgelegt, um zu versuchen, und rufen andere Anwendungen:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
Der wichtigste Teil ist queryIntentActivities
, sind wir die Liste der Apps mit diesem anzuzeigen gibt welche Apps unserer Benutzer wählen können. Apps wie Dropbox und Microsoft OneDrive sind kein Problem, aber Google Drive taucht nie auf.
Was muss ich in meiner Absicht festlegen, dass Google Drive mit queryIntentActivities
zurückgegeben wird?
Ich habe über Storage Access Framework nachgedacht und es scheint, als sollte es mit dem funktionieren, was wir tun, aber ich sollte auch klarstellen, dass wir API 14+ unterstützen und wir brauchen nur kurzfristigen Zugriff auf das Dokument. Es scheint, als ob "ACTION_GET_CONENT" immer noch das ist, was wir für 14+ verwenden sollten. Also meine Frage ist, ob Google Drive "ACTION_GET_CONTENT" unterstützt? Alle Antworten, die ich gesehen habe, sagen nein, aber sie sind ein paar Jahre alt. –
Ja, Sie sollten definitiv 'ACTION_GET_CONTENT' verwenden, wenn Sie nur temporären Zugriff auf eine Datei haben möchten. Sie tun einfach zu viel - "ACTION_GET_CONTENT" ruft eine Benutzeroberfläche auf, mit der Benutzer aus * allen * Apps auswählen können, die über eine Aktivität verfügen, die nach 'GET_CONTENT' ** und ** von jedem 'DocumentsProvider' filtert. Starten Sie einfach den 'Intent', den Sie erstellt haben, und Sie werden sie alle aufgelistet sehen. Beachten Sie, dass aufgrund der erforderlichen Berechtigungen nur diese Systembenutzeroberfläche von 'DocumentsProviders 'lesen kann, sodass Sie nie dieselbe Liste in Ihrer App erstellen können. – ianhanniballake