【问题标题】:How To Pick PDF Path from resources?如何从资源中选择 PDF 路径?
【发布时间】:2013-03-09 19:40:09
【问题描述】:

我有 pdf 文件需要本地存储在 res/raw 或 assets 中某处的文件夹中。

现在我不知道哪个是保存此文件的最佳文件夹以及如何选择它的路径以在第三方应用程序中显示。

我正在使用以下不起作用的代码:

代码:

i = new Intent(this, Tips10.class);
                i.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, getResources()  +"/"+ getPackageName() + "/" + R.raw.tips10);
                startActivity(i);

日志猫:

03-10 00:33:04.335: I/PDFVIEWER(9473): Intent { cmp=com.tackfu/.Tips10 (has extras) }
03-10 00:33:04.335: I/PDFVIEWER(9473): ST='file 'android.content.res.Resources@410cc978/com.tackfu/2130968576' not found'
03-10 00:33:04.335: I/PDFVIEWER(9473): ST='reading page 1, zoom:1.0'

任何人指导我可能是什么问题? 任何帮助将不胜感激。

【问题讨论】:

    标签: android pdf resources


    【解决方案1】:

    您需要将 PDF 复制到外部存储并将该路径与startActivity() 一起使用,或者您需要创建一个ContentProvider 来从内部存储(或者可以想象直接从资源/资产中提供文件) ,虽然这有点困难)。

    This sample project 演示通过ContentProvider 提供内部文件。 This sample project 扩展了第一个,只允许您指定的应用访问该Uri

    【讨论】:

    • 但我正在使用开源库在我的应用程序中打开 pdf,但我仍然需要复制该 pdf 并从资源中取出并放入外部存储?
    • @UMAR:你得问问开源库的作者如何使用它。我假设您正在使用普通的第三方应用程序来查看它,因为这是大多数开发人员会做的事情。
    • 好吧,我已经实现了这个代码并且它可以工作,但是在你的代码中发现了一个小异常,你没有在 try catch 块中包装活动代码,所以当手机中没有安装合适的应用程序时/平板电脑您的应用程序无论如何都会崩溃感谢您的帮助:)
    • @UMAR:我的示例肯定假定存在 PDF 查看器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多