Speichern von Dateien mit Storage Access Framework in Android

8

Ich integriere das Document Access Framework in meine Cloud-Speicherzugriffs-App. Mit dieser Dokumentation konnte ich auf die Datei zugreifen und sie abrufen (ich benutze sie einfach Google Mail App Anhängen, um dies zu überprüfen).

Ich versuche jetzt zu finden, wie man die Datei mit der gleichen Methode speichert (Datei direkt über die App in den Cloud-Speicher speichern) und habe folgende Änderungen vorgenommen:

Für den getRoots-Aufruf

%Vor%

und ich habe auch die Methode createDocument überschrieben.

Ich sehe nicht viel in Form von Beispielcode oder Dokumentation, wie das geht. 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 sie einen anderen Filesharing-Mechanismus verwendet )

Ich suche nach Informationen auf

  1. Wie benutzt man das SAF um eine Datei zu speichern (jede Beispieldatei ist großartig oder Verweise auf die Dokumentation). Ich gehe davon aus, dass es dem Benutzer ermöglicht, die Auswahlschnittstelle zu verwenden, um zu einem Ordner zu navigieren und die Datei zu speichern.

  2. So erhalten Sie die App in der App "Minishare activity", 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 so wird die Datei an einem Standardort gespeichert)

rydgaze 21.04.2015, 16:28
quelle

1 Antwort

0

Die Share-Schaltfläche, auf die Sie in anderen Apps verweisen, verwendet wahrscheinlich ACTION_SEND die Intent-Aktion statt ACTION_CREATE_DOCUMENT , die mit dem Storage Access Framework eingeführt wurde.

Wahrscheinlich möchten Sie beide unterstützen, da ACTION_CREATE_DOCUMENT nur in KitKat eingeführt wurde und ältere Apps dies möglicherweise nicht bemerken. Sie können auch 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?

    
Tobias 11.06.2015, 05:22
quelle