PDF anzeigen in Android

In meiner onCreate() ich mache diese Prüfung:

//
//check if we have a PDF viewer, else bad things happen
//
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("application/pdf");

List<ResolveInfo> intents = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

if (intents == null || intents.size() == 0) {
       //display message then...
       finish();
}

Auf meinem HTC Desire, das nicht wieder ein match, obwohl ich den Adobe-PDF-viewer. Eine Antwort auf diese Frage android: öffnen Sie eine pdf-Datei von meiner app mit dem eingebauten pdf-viewer erwähnt, dass Adobe keine öffentliche Absichten, so dass die obige Prüfung wird natürlich nichts zurück.

Kann jemand überprüfen, ob Sie sollten in der Lage sein, starten Sie Acrobat von einer Absicht, oder gibt es eine andere Methode oder PDF-viewer zu verwenden.

Die tatsächliche Benutzung Fall ist das herunterladen von Kopien der Rechnungen und Ablage auf einem lokalen Speichermedium mit einem code wie:

 URL url = new URL(data);
 InputStream myInput = url.openConnection().getInputStream();

 FileOutputStream fos = openFileOutput(fname, Context.MODE_WORLD_READABLE);

 //transfer bytes from the input file to the output file
 byte[] buffer = new byte[8192];
 int length;
 while ((length = myInput.read(buffer)) > 0) {
    fos.write(buffer, 0, length);
    progressDialog.setProgress(i++);
 }
 fos.close();

und dann zu zeigen,

//read from disk, and call intent
openFileInput(fname);   //will throw FileNotFoundException

File dir = getFilesDir();       //where files are stored
File file = new File(dir, fname);   //new file with our name

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
intent.setType("application/pdf");

startActivity(intent);
InformationsquelleAutor BJB | 2010-09-14
Schreibe einen Kommentar