Android从资产文件夹中读取pdf文件

时间:2017-08-11 08:10:28

标签: android pdf assets android-assets

我尝试在assets文件夹中读取pdf文件存储。我看到这个解决方案: Read a pdf file from assets folder

但是就像评论说它不再起作用,找不到文件,是否有另一种直接读取pdf文件的解决方案,而不在外部存储中复制pdf? 我不想使用PdfRenderer我的最小API是17

1 个答案:

答案 0 :(得分:1)

也许这对某些人有帮助所以我发表了我的回答:

private void openPdf(String pdfName){
    AssetManager assetManager = getAssets();

    InputStream in = null;
    OutputStream out = null;
    File file = new File(getFilesDir(), pdfName);
    try
    {
        in = assetManager.open(pdfName);
        out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);

        byte[] buffer = new byte[1024];
        int read;
        while ((read = in.read(buffer)) != -1)
        {
            out.write(buffer, 0, read);
        }
        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.parse("file://" + getFilesDir() + "/"+pdfName),
            "application/pdf");

    startActivity(intent);
}

pdf文件存储在资产文件夹