当前位置: 首页 > 知识库问答 >
问题:

打开PDF查看器从内容uri在Android Q

冀弘济
2023-03-14

我使用以下代码存储pdf文件:

val intent = Intent().apply {
            action = Intent.ACTION_CREATE_DOCUMENT
            addCategory(Intent.CATEGORY_OPENABLE)
            type = "application/pdf"
            putExtra(Intent.EXTRA_TITLE, file.name)
        }
startActivityForResult(intent, SAVE_FILE_REQUEST_CODE)

之后在onActivityResultIm使用OutputStream保存数据。Uri到文件可以看起来像:

content://com.android.providers.downloads.documents/document/4594
or
content://com.google.android.apps.docs.storage/document/documentId

但当我试图以此目的启动活动时,pdf viewer应用程序显示错误:

 val openFileIntent = Intent(Intent.ACTION_VIEW, contentUri)
                            .apply {
                                setDataAndType(contentUri, "application/pdf")
                                addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
                            }

是否可以从内容Uri打开pdf查看器活动?

共有1个答案

万俟光临
2023-03-14

我可以确认评论的答案是:blackapps和Ааааааааа

val target = Intent(Intent.ACTION_VIEW)
target.setDataAndType(uri, "application/pdf")
target.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_GRANT_READ_URI_PERMISSION

val intent: Intent = Intent.createChooser(target, "Open File")

try {
     startActivity(intent)
} catch (e: ActivityNotFoundException) {
     // Instruct the user to install a PDF reader here
}

将“or Intent.FLAG\u GRANT\u READ\u URI\u PERMISSION”添加到标志中,使我的PDF阅读器能够使用content://URI结构正确打开文件。

 类似资料:
  • 我接收后端发送的pdf文件,如下所示:

  • 当我在我的应用程序中打开PDF时,提供的uri可以有2种方案:“文件”和“内容”: > < li> 使用Dropbox:file:///data/data/com . Dropbox . Android/global/external/doc previews/test 2 . pdf 使用谷歌驱动:内容://媒体/外部/文件/142 有了“内容”,我所有的功能都按预期工作,但有了“文件”,我遇到

  • 问题内容: 我正在使用Java和RCP,并且尝试在Acrobat上显示pdf文档。我不需要更改它们。我的这段代码有这个错误。任何想法如何解决这个问题?附言:它同时运作良好。 问候,Haythem 问题答案: 看看这些免费的pdf渲染器… 一些链接… http://www.icepdf.org/(现在位于http://www.icesoft.org/java/projects/ICEpdf/over

  • 打开文件 哈,现在你已经在无意间学会了一种在 Vim 中打开文件的方式,虽然这种方式并不是最常用的,但却是最 直接的,尤其是当你的代码中 include 了某文件时,下面介绍另外两种常用的打开方式。 在 Vim 中打开文件 :e <filename> 打开名为 filename 的文件,若文件不存在则创建之 :Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录) 查

  • 我想打开具有特定配置的Chromium。 我正在寻找激活以下选项的配置: 背景= 我在这个命令行切换页面上搜索了标签,但是处理pdf的唯一参数是,这与我的需要不一致。 你有什么想法吗?

  • 在我的应用程序中,我显示了一个帖子列表,其中的帖子可能有图像。当用户点击张贴图像,创建选择器显示可用的选项,如“照片”,“画廊”。我的问题是,为什么gallery不能在Android7.0或API 24及以上版本上打开图像?我得到一个错误“Can not open file.”在API级别23及以下,我提供了实际的文件路径,它似乎可以正常工作。在发这个问题之前,我确认了以下内容。有趣的部分是“照片