Ich habe ein Problem mit der Registrierung meiner Dateierweiterung (z. B. .abc), um meine Anwendung zu öffnen.Dateierweiterung als Intent-Filter für meine Anwendung registrieren
Derzeit mein Manifest enthält:
<activity
android:name=".view.MainActivity"
android:label="@string/app_name"
[...] >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.abc" />
</intent-filter>
</activity>
Mit diesem Code Ich bin in der Lage eine .abc Datei öffnen von „ES Datei Explorer“ mit meiner Anwendung, aber wenn ich den Standard-Dateibrowser von meinem Gerät (LG G3) oder verwenden Sie eine Dateiverknüpfung von meinem Startbildschirm, Android versucht, die .abc-Datei mit einem PDF-Viewer von Google Text & Tabellen zu öffnen.
Ich habe auch verschiedene Varianten mit den Kategorien BROWSABLE, ALTERNATIVE und SELECTED_ALTERNATIVE ausprobiert.
Warum führt Android unterschiedliche Absichten aus und wie kann ich erreichen, dass .abc-Dateien immer mit meiner Anwendung geöffnet werden?
Ich hoffe, Sie können mir helfen, danke für Ihre Zeit.
Es versucht, die Datei zu öffnen, schlägt aber fehl, weil es keine PDF-Datei ist. Es scheint, dass diese Einstellung festgelegt wurde. Daher habe ich die Google Docs App zurückgesetzt. Es versucht immer noch, die .abc mit dem PDF-Viewer zu öffnen. – lost1994
Das Interessante ist, dass wenn ich die Datei in .bcd umbenenne (versuchte verschiedene Erweiterungen) Android versucht immer noch, es mit dem PDF-Viewer zu öffnen. Die Meldung von ActivityManager in LogCat lautet 'START u0 {act = android.intent.action.VIEW dat = Datei: ///storage/emulated/0/APPLICATIONDIR/FILENAME.bcd flg = 0x10000000 cmp = com.google.android.apps .docs/com.google.android.apps.viewer.PdfViewerActivity bnds = [0,850] [288,1220]} von der uid 10029 auf dem Display 0' – lost1994
versuche, eine Absicht zu machen mit Intent chooser = Intent.createChooser (intent, title); startActivity (Auswahl); Dies zeigt eine Liste von Apps, die mit der bestimmten Absicht umgehen können. Wenn Ihre App auf dieser Liste angezeigt wird, wissen Sie, dass Sie richtig funktioniert haben – Anonymous