Benutzer klicken Sie auf .txt Datei im Datei-Explorer und rufen Sie den Dialog "Öffnen mit ..." und dort ist meine App aufgeführt. Wenn ich versuche, die Datei zu öffnen, möchte ich ihren absoluten Pfad erhalten. Alles, was ich Inhalt erhalten ist: // URIWie Datei-URI beim Öffnen der Datei mit intent.action.VIEW erhalten?
I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://com.android.providers.downloads.documents/document/1031 typ=text/plain
Wenn ich Pfad zu meiner Datei abrufen möchten, muss ich Datei erhalten: // URI. Wie kann ich nur file://
URI anstelle von content://
bekommen? Hier
ist AndroidManifest
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*"/>
</intent-filter>
Hier ist, wie ich versuche, Datei zu handhaben:
Intent i = getIntent();
String action = i.getAction();
String type = i.getType();
if (Intent.ACTION_VIEW.equals(action) && type != null) {
Uri uri = i.getData();
if (uri != null) {
Toast.makeText(this, uri.toString(), Toast.LENGTH_SHORT).show();
}
}
Aber ich will nicht nur Datei lesen, ich möchte auch Datei bearbeiten und speichern. –
@PersonalJesus: Es gibt 'openOutputStream()', auch auf 'ContentResolver'. IOW, die gleichen Dinge, die Sie mit einem absoluten Pfad machen würden und 'FileInputStream' /' FileOutputStream' sind Dinge, die Sie mit 'content'' Uri' und 'openInputStream()'/'openOutputStream()' machen können. – CommonsWare