assets
Androidアプリケーションのフォルダーに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を変更し、プログラムを実行しようとしましたが、それでも同じエラーが発生します。