0

このようにアセットフォルダーからファイルを取得できます

Intent i = new Intent(Intent.ACTION_VIEW);
        i.setDataAndType(Uri.parse("file:///android_asset/help_doc.pdf"), "application/pdf");
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        try{
            startActivity(i);
        }catch(ActivityNotFoundException e){
            Toast.makeText(this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show();
        }

しかし、アプリケーションを選択して開くと、開かないか、エラーが表示error opening file. it does not exist or cannot be readされますが、それをSDカードに入れてクリックして開くと、このエラーが発生しないので、やり方が間違っています?

4

1 に答える 1

4

file://android_assetあなたのアプリでのみ機能します。これらの他のアプリに実行するように指示しているのは、アセットを読み取るhelp_doc.pdfことであり、そのようなファイルはありません。

次のいずれかを行う必要があります。

  • ファイルを外部ストレージにコピーする、または
  • ファイルを内部ストレージにコピーし、をContentProvider使用して PDF 表示アプリで使用できるようにします

このサンプル プロジェクトは、後者のアプローチを示しています。

于 2013-01-07T21:08:01.143 に答える