我遇到了“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”上的值打开特定文件的方法
所以,选择任何文件后
您的代码不与文件绑定。
我的变量“pdfPath”有一个字符串指向我刚刚选择的文件的路径,例如:
不,事实并非如此。它包含任意一系列字符。不要求
path
中的 Uri
是文件系统路径。而且,值得注意的是,您的路径不是文件系统路径。
有什么方法可以打开这个有路径的文件吗?
摆脱
path
。使用 Uri
,将其传递到您的 ACTION_VIEW
Intent
,例如:
if (uri != null) {
startActivity(Intent(Intent.ACTION_VIEW, uri))
}
该文件位于手机内部
不一定。它可能在任何地方。
ActivityResultContracts.GetContent
不限于文件系统。