我必须将pdf文件与我的应用程序一起发送并显示为列表,点击后每个文件都应在Adobe Reader中打开。我已经尝试将/ asset文件夹中的pdf文件放在/ res / raw文件夹中。但在任何一种情况下,我都遇到ActivityNotFound Exception。代码和异常消息如下。
将文件放在/ assets / pdf文件夹中
try {
files = amanager.list("pdf");
//AssetFileDescriptor fd = amanager.openFd(files[0]);
Uri path = Uri.parse("android.resource://com.csg.android.myproject/assets/pdf/csgsample") ;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setPackage("com.adobe.reader");
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();
}
将文件放入/ res / raw文件夹
Uri.parse("android.resource://com.csg.android.myproject/raw/csgsample") ;
例外:
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 pkg=com.adobe.reader }
非常感谢任何帮助。
先谢谢, 纳文
答案 0 :(得分:2)
如果你得到一个ActivityNotFoundException
是因为没有应用程序来处理这种内容。所以,在这种情况下,我确定已经安装了Adobe Reader。
此外,我认为您必须将文件复制到SDCard,以便其他应用访问它。出于安全原因,他们无法直接访问您的私人数据。
答案 1 :(得分:0)
我认为资产和原始文件只能由您的应用程序查看。第三方应用程序(捆绑或不捆绑)无法访问这些文件。您应该先将文件放入设备的SD卡中,然后再打开它们。
答案 2 :(得分:0)
我有同样的问题,但我应该注意,这是我按资源ID
打开的方式Uri.parse("android.resource://com.csg.android.myproject/" + R.raw.csgsample);