-1

raw フォルダーから 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

raw フォルダーから PDF ファイルを直接開くことはできません。PDFファイルを開くには、PDFViewerアプリケーションが必要です。

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 に答える