fix(resources): ePub/PDF-Dateien können nicht von externen Apps geöffnet werden #129

Closed
opened 2026-05-18 22:11:15 +00:00 by jreinemann-euris · 0 comments
jreinemann-euris commented 2026-05-18 22:11:15 +00:00 (Migrated from github.com)

Problem

Beim Öffnen von ePub-Ressourcen aus der App heraus kommt die Fehlermeldung "Keine App gefunden". PDFs zeigen zwar den Auswahl-Dialog (welche App soll öffnen?), aber wenn man z.B. Firefox auswählt, schlägt das Öffnen ebenfalls fehl.

Vermutung

Die Dateien werden nur app-intern gespeichert (interner Speicher / App-spezifisches Verzeichnis). Andere Apps haben keinen Zugriff auf diese Dateien. Mögliche Ursachen:

  1. Kein FileProvider konfiguriert – Ohne FileProvider kann keine content://-URI an externe Apps übergeben werden
  2. Falsche URI im Intent – Möglicherweise wird eine file://-URI statt content://-URI verwendet (ab Android 7+ verboten für App-übergreifende Intents)
  3. MIME-Type fehlt oder ist falsch – Ohne korrekten MIME-Type (application/epub+zip) findet Android keine passende App
  4. Datei muss erst in Downloads kopiert werden – Falls FileProvider nicht reicht, müssten die Dateien vor dem Öffnen in den öffentlichen Downloads-Ordner kopiert werden

Erwartetes Verhalten

  • ePub-Dateien werden mit einer installierten Reader-App geöffnet (z.B. Moon+ Reader, ReadEra)
  • PDF-Dateien werden korrekt in der gewählten App angezeigt (Firefox, PDF-Viewer etc.)

Zu prüfen

  • Wie werden die Ressourcen-Dateien aktuell gespeichert? (interner Speicher? Cache?)
  • Wird ein FileProvider verwendet? Ist er in AndroidManifest.xml konfiguriert?
  • Welche URI wird im ACTION_VIEW-Intent übergeben? (file:// vs content://)
  • Ist der MIME-Type korrekt gesetzt? (application/epub+zip für ePub, application/pdf für PDF)
  • Reicht FileProvider oder müssen Dateien nach Downloads kopiert werden?

Lösungsansätze

  1. FileProvider + content:// URI (bevorzugt) – Datei bleibt intern, wird über FileProvider geteilt
  2. MediaStore / Downloads – Datei in öffentlichen Downloads-Ordner kopieren, dann öffnen
  3. Kombination – FileProvider für direktes Öffnen, optional "In Downloads speichern"-Button
## Problem Beim Öffnen von ePub-Ressourcen aus der App heraus kommt die Fehlermeldung **"Keine App gefunden"**. PDFs zeigen zwar den Auswahl-Dialog (welche App soll öffnen?), aber wenn man z.B. Firefox auswählt, schlägt das Öffnen ebenfalls fehl. ## Vermutung Die Dateien werden nur app-intern gespeichert (interner Speicher / App-spezifisches Verzeichnis). Andere Apps haben keinen Zugriff auf diese Dateien. Mögliche Ursachen: 1. **Kein FileProvider konfiguriert** – Ohne `FileProvider` kann keine `content://`-URI an externe Apps übergeben werden 2. **Falsche URI im Intent** – Möglicherweise wird eine `file://`-URI statt `content://`-URI verwendet (ab Android 7+ verboten für App-übergreifende Intents) 3. **MIME-Type fehlt oder ist falsch** – Ohne korrekten MIME-Type (`application/epub+zip`) findet Android keine passende App 4. **Datei muss erst in Downloads kopiert werden** – Falls FileProvider nicht reicht, müssten die Dateien vor dem Öffnen in den öffentlichen Downloads-Ordner kopiert werden ## Erwartetes Verhalten - ePub-Dateien werden mit einer installierten Reader-App geöffnet (z.B. Moon+ Reader, ReadEra) - PDF-Dateien werden korrekt in der gewählten App angezeigt (Firefox, PDF-Viewer etc.) ## Zu prüfen - [ ] Wie werden die Ressourcen-Dateien aktuell gespeichert? (interner Speicher? Cache?) - [ ] Wird ein `FileProvider` verwendet? Ist er in `AndroidManifest.xml` konfiguriert? - [ ] Welche URI wird im `ACTION_VIEW`-Intent übergeben? (`file://` vs `content://`) - [ ] Ist der MIME-Type korrekt gesetzt? (`application/epub+zip` für ePub, `application/pdf` für PDF) - [ ] Reicht FileProvider oder müssen Dateien nach Downloads kopiert werden? ## Lösungsansätze 1. **FileProvider + content:// URI** (bevorzugt) – Datei bleibt intern, wird über FileProvider geteilt 2. **MediaStore / Downloads** – Datei in öffentlichen Downloads-Ordner kopieren, dann öffnen 3. **Kombination** – FileProvider für direktes Öffnen, optional "In Downloads speichern"-Button
Sign in to join this conversation.
No description provided.