Anzeigen von PDFs: Android & Intents…

Heute möchte ich über ein Problem berichten, welches wir kürzlich bei der Anzeige von PDF-Dateien unter Android angetroffen haben.

Etwas Hintergrund: Android & Intents

Android nutzt sogenannte Intents um verschiedene Apps miteinander interagieren zu lassen. Zum Beispiel kann ich einen Intent absetzen: „Starte Jogging-App“ und Android startet die Jogging App. Oder ich kann einen Intent absetzen „Zeige email hidden; JavaScript is required“, Android öffnet in diesem Fall eine App, welche Email-Adressen anzeigen kann. Welche App Android genau dazu verwendet hängt von den Einstellungen ab und vor allem davon, welche Apps installiert sind.

Das Problem

Ganz ähnlich haben wir versucht, bei der Anzeige der News unserer App PDF-Dateien zu öffnen. Doch Android hat sich in diesem Fall gesträubt, das PDF anzuzeigen und es einfach zum Download angeboten. – Doch wir möchten das PDF ansehen und nicht herunterladen. Man könnte auch einen expliziten Intent mit der Angabe eines bestimmten PDF-Viewers nehmen à la „Öffne mit Adobe Acrobat PDF“. Aber wir wissen ja nicht, welche PDF-Apps auf dem Smartphone oder Tablet installiert sind.

Die Lösung

Wieso selbst etwas tun, wenn man Google hat? Der Google Docs Viewer kann PDF-Files im Browser darstellen, ganz ohne spezielle PDF-App. Und dies ist sogar noch schneller, als wenn der Benutzer das ganze PDF zuerst herunterladen muss. Dazu kann man einfach „http://docs.google.com/viewer?url=URLderGewünschtenPdfDatei“ vor die URL hängen, z.B. so. Et voilà, schon haben wir das PDF im Browser und der funktioniert immer. Details dazu bei Stackoverflow.