Lire un fichier pdf à partir d'éléments de dossier

public void DOCS(View btnDocs)
{   
File fileBrochure = new File("android.resource://com.project.datastructure/assets/abc.pdf");
if (!fileBrochure.exists())
{
CopyAssetsbrochure();
} 
/** PDF reader code */
File file = new File("android.resource://com.project.datastructure/assets/abc.pdf");        
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try 
{
getApplicationContext().startActivity(intent);
} 
catch (ActivityNotFoundException e) 
{
Toast.makeText(Stack_dr.this, "NO Pdf Viewer", Toast.LENGTH_SHORT).show();
}
}
private void CopyAssetsbrochure() {
AssetManager assetManager = getAssets();
String[] files = null;
try 
{
files = assetManager.list("");
} 
catch (IOException e){}
for(int i=0; i<files.length; i++)
{
String fStr = files[i];
if(fStr.equalsIgnoreCase("abc.pdf"))
{
InputStream in = null;
OutputStream out = null;
try 
{
in = assetManager.open(files[i]);
out = new FileOutputStream("/sdcard/" + files[i]);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
break;
} 
catch(Exception e){}
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException 
{
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}

Je suis en train de lire un fichier pdf à partir d'éléments de dossier qui est présent dans mon dossier de l'application . Tout fonctionne parfaitement lorsque je clique sur mes DOCS bouton une fenêtre pop-up vient de laissez-moi choisir une application pour ouvrir le pdf que j'ai.e "abc.pdf", mais après avoir sélectionné une option, je reçois un message d'erreur "Le chemin d'accès au fichier n'est pas valide". Je pense que leur est un problème avec le chemin que j'ai indiqué dans le code.
s'il vous plaît aider

  • avez-Vous vérifié si le copié pdf existe vraiment sur votre carte sd? Par le chemin, Vous devez spécifier avec l'Environnement.getExternalStorageDirectory() pour spécifier le chemin d'accès au lieu de "/sdcard/"
  • Le fichier pdf qui existe dans mon dossier des actifs, qui sera b livré avec l'app
InformationsquelleAutor rick | 2013-06-13