我有这段代码,基本上我得到了一个文件路径(不是媒体路径),出于某种原因,在某些 Android 10 设备中我得到的路径为
/document/msf:<number>
在清单中我有
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
private val xfile = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
var xmlFile = FileWrapperFactory(requireContext()).getAssetFileWrapper("file")
var xmlPath = ""
if (result.resultCode == Activity.RESULT_OK) {
xmlPath = result.data?.data?.path.toString()
xmlFile = FileWrapperFactory(requireContext()).getExternalFileWrapper(xmlPath)
}
viewBinding.pathName.setText(xmlPath)
}
....
fun getFile() {
val intent = Intent(Intent.ACTION_GET_CONTENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("*/*")
xfile.launch(Intent.createChooser(intent, "file"))
}
我需要将代码更改为该场景,并且我尝试了多种解决方案,但没有人成功。
由于您的文件类型不是媒体类型,请遵循此官方指南:从共享存储访问文档和其他文件