2013-03-09 6 views
-1

J'ai un fichier pdf que j'ai besoin de stocker localement dans le dossier quelque part dans le res/raw ou les actifs.Comment choisir un chemin PDF à partir de ressources?

Maintenant, je ne sais pas quel est le meilleur dossier pour conserver ce fichier et comment choisir le chemin à afficher dans une application tierce.

J'utilise le code suivant qui ne fonctionne pas:

Code:

i = new Intent(this, Tips10.class); 
       i.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, getResources() +"/"+ getPackageName() + "/" + R.raw.tips10); 
       startActivity(i); 

chat journal:

03-10 00:33:04.335: I/PDFVIEWER(9473): Intent { cmp=com.tackfu/.Tips10 (has extras) } 
03-10 00:33:04.335: I/PDFVIEWER(9473): ST='file '[email protected]/com.tackfu/2130968576' not found' 
03-10 00:33:04.335: I/PDFVIEWER(9473): ST='reading page 1, zoom:1.0' 

quelqu'un me guider ce qui pourrait être la question ? Toute aide serait appréciée.

Répondre

0

Vous devrez soit copier le fichier PDF sur le stockage externe et utiliser ce chemin avec startActivity(), ou vous devrez créer un ContentProvider qui servira le fichier de stockage interne (ou peut-être tout droit sorti de ressources/actifs, bien que est un peu plus difficile).

This sample project montre qu'il traite un fichier interne via un ContentProvider. This sample project étend le premier à autoriser uniquement l'application que vous spécifiez pour accéder à cette Uri.

+0

mais j'utilise la bibliothèque open source pour ouvrir le pdf dans mon application encore j'ai besoin de copier ce pdf prenant des ressources et mettre sur le stockage externe? – UMAR

+0

@UMAR: Vous devrez demander à l'auteur de la bibliothèque open source comment l'utiliser. J'ai supposé que vous utilisiez une application tierce normale pour l'afficher, puisque c'est ce que feraient la plupart des développeurs. – CommonsWare

+0

bien que j'aie implémenté ce code et cela fonctionne, mais trouvé une petite exception dans votre code, vous n'avez pas encapsulé de code d'activité dans try catch block, donc quand application appropriée n'est pas installée dans le téléphone/tablette votre application se bloque votre aide :) – UMAR

Questions connexes