8

Ich integriere das Document Access Framework mit meiner Cloud Storage Access App. Unter Verwendung der this Dokumentation konnte ich auf die Datei zugreifen und sie abrufen (ich verwende einfach die Anfügefunktion der Google Mail-App, um dies zu überprüfen).Speichern von Dateien mit Storage Access Framework in Android

ich jetzt versuchen, wie zu finden, die gleiche Methode zu speichern Datei (Datei direkt über die App zu Cloud-Storage-Speichern) und ich habe folgende Änderungen vorgenommen:

Für die getRoots nennen,

row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE); 

und ich habe auch die createDocument Methode überschrieben.

Ich sehe nicht viel in der Art von Beispielcode oder Dokumentation, wie dies zu tun ist. Ich sehe auch, dass eine Reihe von Apps wie die "Fotos" -App die Schaltfläche "Teilen" haben, die eine andere Methode verwenden (Die Protokolle zeigen miniShareActivity) und meine App wird nicht angezeigt (Es sieht so aus, als ob es einen anderen Filesharing-Mechanismus verwendet)

ich nach Informationen suchen auf

  1. Wie die SAF verwenden Datei zu speichern (jede Beispieldatei wird groß oder Verweise auf Dokumentation sein). Ich nehme an, dass es dem Benutzer ermöglicht, die Auswahlschnittstelle zu verwenden, um zu einem Ordner zu navigieren und die Datei zu speichern.

  2. Wie die App in der App "Minishare activity" angezeigt wird, um die Datei in die App zu importieren (Es sieht so aus, als ob es keine Picker-Schnittstelle bietet, aber ich möchte trotzdem die Unterstützung bereitstellen wird die Datei in einem Standardverzeichnis) gespeichert

+0

Mein Verdacht, basierend auf den "Get ein InputStream" und "Erstellen Sie ein neues Dokument" Beispiele unter https://developer.android.com/guide/topics/providers/document-provider.html ist, dass Sie möchten mach das letztere, dann etwas wie getContentResolver(). openOutputStream (uri); Der entscheidende Punkt dabei ist, dass, während Sie das Ergebnis lesen und schreiben können, auf eine Weise, die einer Datei sehr ähnlich ist, es nicht immer eine Möglichkeit geben wird, eine literale java.io.File zu erhalten, die der Datei entspricht. –

+0

Diese Beispiele stammen aus der Perspektive von Client-Apps, aber ich versuche herauszufinden, welche anderen Einstellungen für die Seite des Dokumentanbieters erforderlich sind. Ein Beispiel, das den Code des Clients und des Providers hat, wäre ideal. – rydgaze

+0

Dies könnte Ihnen helfen: http://www.techotopia.com/index.php/An_Android_Storage_Access_Framework_Example#Creating_a_New_Storage_File – powder366

Antwort

0

die Share-Taste wahrscheinlich auch in anderen Anwendungen zu Sie beziehen sich ACTION_SEND als Intent-Aktion verwendet, anstatt ACTION_CREATE_DOCUMENT, die mit dem Speicherzugriff Rahmen eingeführt wurde.

Sie möchten wahrscheinlich beide unterstützen, da ACTION_CREATE_DOCUMENT nur in KitKat eingeführt wurde und ältere Apps dies möglicherweise nicht bemerken. Ebenso können Sie die Intent-Aktion ACTION_GET_CONTENT für den Lesezugriff auf Pre-KitKat-Geräte unterstützen (ACTION_GET_CONTENT wird von der SAF bei der Ausführung von KitKat + verarbeitet, aber Ihre App muss sie weiterhin verarbeiten, wenn sie auf einem Pre-KitKat-Gerät ausgeführt wird). Sind die <intent-filter> s in Ihrem AndroidManifest so eingerichtet, dass sie allen diesen Intent-Typen entsprechen?

Verwandte Themen