android - 在 Android 中读取 Assets 或原始文件夹中的文件

标签 android pdf uri assets

我必须将 pdf 文件与我的应用程序一起发送,并将它们显示为列表,单击时每个文件都应在 Adob​​e 阅读器中打开。我尝试将 pdf 文件放在/assets 文件夹中,也放在/res/raw 文件夹中。但无论哪种情况,我都会遇到 ActivityNotFound 异常。代码和异常消息如下。

将文件放在/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")  ;

异常(exception):

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 }

如有任何帮助,我们将不胜感激。

提前致谢, 纳文

最佳答案

如果你得到一个 ActivityNotFoundException 是因为没有应用程序来处理那种内容。因此,在这种情况下,我确定已安装 Adob​​e Reader。

此外,我认为您必须将文件复制到 SDCard 以便其他应用程序访问它。出于安全原因,他们无法直接访问您的私有(private)数据。

关于android - 在 Android 中读取 Assets 或原始文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120790/

相关文章:

iphone - 移动网络应用程序的 WebSQL 替代品?

java - 触摸听者听边缘

css - 截取包含旋转图像的 Div 并将 div 图像导入 PDF 文件

android - 各种 API 上的日历

java - TabLayout 上的标签标题未显示

android - 如何区分以编程方式滚动 ListView 和手动滚动 ListView ?

java - 使用 PDFBOX 以正确的字符呈现形式书写阿拉伯语而不被分离

ios - PDFKit 注释 url 因不可为 null 的属性(可以为 null)而崩溃

javascript - 从网页安装 URI 方案的服务处理程序

android - ContentUris.withAppendedId中 '_id'有什么用