-1

如何从原始文件夹中打开 PDF 文件?此代码用于从 SD 卡访问 PDF 文件。

File file = new File(getFilesDir(), "teen_ebook.pdf");

  try {

        if (file.exists()) {

            Uri path = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            Log.e("IR", "No exception");

        }
        else {
            Toast.makeText(PdfActivity.this, "File NotFound",Toast.LENGTH_SHORT).show();
        }
    }
    catch (ActivityNotFoundException e) {

    Toast.makeText(PdfActivity.this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show();
    }

但我想从原始文件夹访问 PDF 文件?这里任何一个。请建议我。

4

1 回答 1

1

您不能直接从原始文件夹中打开 PDF 文件。它需要 PDFViewer 应用程序才能打开 PDF 文件。

您必须将您的 PDF 文件复制到 SD 卡中,然后您才能打开阅读它。

public void openPDF(){

  copyFile(getResources().openRawResource(R.raw.hello_world);
       , new FileOutputStream(new File(getFilesDir(), "yourPath/teen_ebook.pdf")));

        File pdfFile = new File(getFilesDir(), "yourPath/teen_ebook.pdf"); 
        Uri path = Uri.fromFile(pdfFile);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.setDataAndType(path, "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);
        }
    }
于 2014-04-04T09:17:06.993 回答