Comment ouvrir un fichier PDF via Intent from SD card

J’essaie de lancer une Intent d’ouvrir un pdf dans mon dossier de ressources dans mon application. J’ai lu des dizaines de messages mais je suis toujours coincé. Apparemment, je dois d’abord copier le pdf sur la carte SD, puis lancer une Intent . Ça ne marche toujours pas.

Je pense que le problème est le lancement de l’ Intent alors je tente simplement d’ouvrir un fichier “example.pdf” que j’ai copié sur la carte SD en utilisant ce code:

 Log.w("IR", "TRYING TO RENDER: " + Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf"), "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(intent); Log.e("IR", "No exception"); } catch (ActivityNotFoundException e) { Log.e("IR", "error: " + e.getMessage()); Toast.makeText(InvestorRelations.this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show(); } 

Ceci est ma sortie LogCat.

 05-10 10:35:10.950: W/IR(4508): TRYING TO RENDER: /mnt/sdcard/example.pdf 05-10 10:35:10.960: E/IR(4508): No exception 

Sauf lorsque ce code est exécuté, je reçois le Toast suivant (non produit par mon application)

“Type de document non pris en charge”

Mais je peux ouvrir le document manuellement via l’application de visualisation PDF installée. Toute aide serait grandement appréciée.

Essayez ce code, affichez le fichier pdf From / sdcard

 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent);