繁体   English   中英

Android应用程序中Assets文件夹中的pdf文件

[英]pdf files in assets folder in Android application

我通过将PDF文件放在我的android应用程序的assets文件夹中来运送它们。 我可以使用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 }

我使用PackageManager查询了该设备,然后发现安装了Adobe Reader。 但是我不确定为什么会引发此错误。 我还尝试将其放置在assets文件夹中,然后相应地更改了URI并运行了程序,但最终还是遇到相同的错误。

您可以将它们放在res / raw文件夹中,然后创建资源URI指向它们。 它们采用android.resource://com.example.myapp/raw/my_resource的形式。 我不确定的是,其他应用程序(例如PDF阅读器)是否可以打开它们。 试试看!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM