Maison >Java >javaDidacticiel >Comment lire un fichier PDF à partir du dossier Assets dans une application Android ?
Lire un fichier PDF à partir d'un dossier d'actifs
Cet article aborde le problème de la lecture d'un fichier PDF à partir d'un dossier d'actifs dans une application Android. Les utilisateurs qui tentent d'accéder au PDF rencontrent le message d'erreur "Le chemin du fichier n'est pas valide."
Analyse du code
Le code fourni récupère le fichier PDF du dossier des ressources. . Cependant, le chemin spécifié pour l'ouverture du PDF dans l'intention fait référence au dossier des ressources, ce qui peut entraîner des problèmes d'autorisations et d'accès.
Solution
Pour résoudre ce problème, considérons le code suivant :
public class SampleActivity extends Activity {</p> <pre class="brush:php;toolbar:false">@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); CopyReadAssets(); } private void CopyReadAssets() { AssetManager assetManager = getAssets(); InputStream in = null; OutputStream out = null; File file = new File(getFilesDir(), "abc.pdf"); try { in = assetManager.open("abc.pdf"); out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); copyFile(in, out); in.close(); out.flush(); out.close(); } catch (Exception e) { Log.e("tag", e.getMessage()); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf"); //Grant permission to the user after confirming existence of the file if (file.exists()) { intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); try { getApplicationContext().startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(this, "NO PDF Viewer", Toast.LENGTH_SHORT).show(); } } } 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); } }
}
Explication
Considérations supplémentaires
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!