Rumah > Java > javaTutorial > teks badan

Mengapakah apl Android saya membuang ralat \'Laluan fail tidak sah\' semasa cuba membaca PDF daripada folder aset?

Patricia Arquette
Lepaskan: 2024-10-28 09:48:29
asal
764 orang telah melayarinya

Why is my Android app throwing a

Baca Fail PDF daripada Folder Aset

Masalah:

Dalam aplikasi Android, cuba membaca fail PDF daripada folder aset menggunakan kod yang disediakan menghasilkan mesej ralat "Laluan fail tidak sah."

Kod:

Yang berkaitan bahagian kod adalah seperti berikut:

<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>
Salin selepas log masuk

Penyelesaian:

Isunya terletak pada laluan yang disediakan kepada objek Fail. Laluan yang betul harus mendapatkan semula fail PDF daripada folder aset menggunakan 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>
Salin selepas log masuk

Nota Tambahan:

  • Jangan lupa tambah kebenaran WRITE_EXTERNAL_STORAGE kepada fail manifes.
  • Kaedah copyFile() digunakan untuk menyalin fail PDF daripada folder aset ke storan dalaman, menjadikannya boleh diakses oleh Niat.
  • URI ialah dibina menggunakan Uri.parse() untuk menunjuk ke lokasi fail dalam storan dalaman.

Atas ialah kandungan terperinci Mengapakah apl Android saya membuang ralat \'Laluan fail tidak sah\' semasa cuba membaca PDF daripada folder aset?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!