使用字符串变量中存储的路径目录打开.pdf文件

问题描述 投票:0回答:1

我遇到了“Intent(Intent.ACTION_VIEW)”(android kotlin) 的问题,我搜索了整个互联网,但找不到更新的解决方案。

看起来有点简单,在我的代码中我有这行代码:

private fun openFilePicker() {
        filePickerLauncher.launch("*/*")
    }
private val filePickerLauncher = registerForActivityResult(ActivityResultContracts.GetContent()) { uri ->
        if (uri != null) {
            val filePath = uri.path
            if (filePath != null) {
                pdfPath = filePath
            }
        }
    }

因此,选择任何文件后,我的变量“pdfPath”有一个字符串指向我刚刚选择的文件的路径,例如:

pdfPath = /document/primary:ExampleFolder/Example.pdf

有什么方法可以打开这个有路径的文件吗?

Obs:该文件位于手机内部。它可能在手机上的任何地方,我只需要一种根据“pdfPath”上的值打开特定文件的方法

java android kotlin
1个回答
0
投票

所以,选择任何文件后

您的代码不与文件绑定。

我的变量“pdfPath”有一个字符串指向我刚刚选择的文件的路径,例如:

不,事实并非如此。它包含任意一系列字符。不要求

path
中的
Uri
是文件系统路径。而且,值得注意的是,您的路径不是文件系统路径。

有什么方法可以打开这个有路径的文件吗?

摆脱

path
。使用
Uri
,将其传递到您的
ACTION_VIEW
Intent
,例如:

        if (uri != null) {
            startActivity(Intent(Intent.ACTION_VIEW, uri))
        }

该文件位于手机内部

不一定。它可能在任何地方。

ActivityResultContracts.GetContent
不限于文件系统。

© www.soinside.com 2019 - 2024. All rights reserved.