Rumah  >  Artikel  >  Java  >  Bagaimana untuk membaca fail PDF dengan betul dari folder aset dalam aplikasi Android?

Bagaimana untuk membaca fail PDF dengan betul dari folder aset dalam aplikasi Android?

DDD
DDDasal
2024-10-31 15:11:02409semak imbas

How to correctly read a PDF file from the assets folder in an Android application?

Baca Fail PDF daripada Folder Aset

Membaca fail PDF daripada folder aset dalam aplikasi Android melibatkan beberapa langkah khusus.

Dalam kod yang diberikan, isu timbul dengan laluan fail yang ditentukan untuk fail "abc.pdf". Laluan yang digunakan, "android.resource://com.project.datastructure/assets/abc.pdf," tidak betul.

Untuk menyelesaikannya, ikut langkah berikut:

  1. Salin fail "abc.pdf" ke storan dalaman aplikasi: Gunakan kaedah CopyReadAssets() untuk menyalin fail daripada folder aset ke storan dalaman. Ini memastikan bahawa fail boleh diakses oleh aplikasi.
  2. Nyatakan laluan fail yang betul: Daripada menggunakan laluan folder aset, gunakan laluan fail dalam storan dalaman aplikasi, yang akan menjadi Uri.fromFile(fail), dengan fail ialah objek Fail yang mewakili fail PDF yang disalin.
  3. Tetapkan kebenaran yang betul: Pastikan anda memasukkan kebenaran WRITE_EXTERNAL_STORAGE dalam fail AndroidManifest.xml aplikasi untuk membenarkan aplikasi menulis ke storan dalaman.

Berikut ialah kod yang dikemas kini dengan pengubahsuaian yang diperlukan:

<code class="java">public class SampleActivity extends Activity {

    @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();
            in = null;
            out.flush();
            out.close();
            out = null;
        } catch (Exception e) {
            Log.e("tag", e.getMessage());
        }

        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType( Uri.fromFile(file), "application/pdf");

        startActivity(intent);
    }

    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);
        }
    }

}</code>

Kod yang dikemas kini ini akan menyalin "abc.pdf" dengan betul fail ke storan dalaman aplikasi dan gunakan laluan fail yang betul untuk membuka PDF dalam pemapar PDF pihak ketiga.

Atas ialah kandungan terperinci Bagaimana untuk membaca fail PDF dengan betul dari folder aset dalam aplikasi Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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