Maison > Java > javaDidacticiel > Pourquoi mon application Android génère-t-elle une erreur « Le chemin du fichier n'est pas valide » lorsque j'essaie de lire un PDF à partir du dossier des ressources ?

Pourquoi mon application Android génère-t-elle une erreur « Le chemin du fichier n'est pas valide » lorsque j'essaie de lire un PDF à partir du dossier des ressources ?

Patricia Arquette
Libérer: 2024-10-28 09:48:29
original
882 Les gens l'ont consulté

Why is my Android app throwing a

Lire un fichier PDF à partir du dossier Assets

Problème :

Dans une application Android, tente de lire un fichier PDF à partir du dossier d'actifs à l'aide du code fourni, ce qui entraîne le message d'erreur "Le chemin du fichier n'est pas valide."

Code :

Le correspondant La section de code est la suivante :

<code class="java">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");
startActivity(intent);</code>
Copier après la connexion

Solution :

Le problème réside dans le chemin fourni à l'objet File. Le chemin correct doit récupérer le fichier PDF du dossier Assets à l'aide de getAssets().

<code class="java">AssetManager assetManager = getAssets();
InputStream in = assetManager.open("abc.pdf");
OutputStream out = openFileOutput("abc.pdf", Context.MODE_WORLD_READABLE);

// Copy PDF file to internal storage
copyFile(in, out);

// Create Intent and URI for file in internal storage
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf");

startActivity(intent);</code>
Copier après la connexion

Notes supplémentaires :

  • N'oubliez pas d'ajouter l'autorisation WRITE_EXTERNAL_STORAGE sur le fichier manifeste.
  • La méthode copyFile() est utilisée pour copier le fichier PDF du dossier d'actifs vers le stockage interne, le rendant accessible par l'intention.
  • L'URI est construit en utilisant Uri.parse() pour pointer vers l'emplacement du fichier dans la mémoire interne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal