0

assetsAndroidアプリケーションのフォルダーにPDFファイルを配置して出荷しています。を使用してファイル名を取得することを読み取ることができますAssetManager。それらを画面に表示する必要があり、それを行うことができます。しかし、pdfviewerを使用してそれらを開く必要があります。

各アイテムにインテントを書き込むにonclick()は、PDFファイルのURIを渡す必要があります。そして、AssetManager私はファイルのURIを取得できません。私がこのすべてを処理できるより良い方法はありますか?

URIを取得できたとしても、PDFビューアはアセットフォルダ内のPDFファイルを読み取ることができますか?

更新:
以下の提案に基づいて、私は次のコードを書きました

  try {

                Uri path = Uri.parse("android.resource://com.csg.android.myproject/raw/csgsample")  ;
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(path, "application/pdf");
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                try {
                    startActivity(intent);
                }
                catch (ActivityNotFoundException e){
                    Toast.makeText(FirstTab.this, "NO Viewer", Toast.LENGTH_SHORT).show();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

ActivityNotFoundException次の例外メッセージとともにをスローします。

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.csg.android.myproject/assets/pdf/csgsample typ=application/pdf flg=0x4000000 }

を使用してデバイスを照会したところ、AdobeReaderがPackageManagerインストールされていることがわかりました。しかし、なぜこのエラーがスローされるのかわかりません。また、これを代わりにフォルダーに配置して、assetsそれに応じてURIを変更し、プログラムを実行しようとしましたが、それでも同じエラーが発生します。

4

1 に答える 1

0

それらをres/rawフォルダーに配置し、それらを指すリソースURIを作成できます。それらはの形式ですandroid.resource://com.example.myapp/raw/my_resource。私が確かに知らないのは、PDFリーダーなどの他のアプリがそれらを開くことができるかどうかです。やってみよう!

于 2011-02-25T05:46:01.813 に答える