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
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.
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
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. –
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
Dies könnte Ihnen helfen: http://www.techotopia.com/index.php/An_Android_Storage_Access_Framework_Example#Creating_a_New_Storage_File – powder366