单击按钮后,我想创建一个用于浏览文件和选择目录的Intent。然后,我想在共享首选项中存储此目录的路径。稍后,我想将此路径用作File对象的参数,因此,例如,我可以获得所选择目录的父目录,或列出其所有文件。问题是,我从Intent获得了这条路:
内容://com.android.externalstorage.documents/tree/primary%3AAndroid%2Fdata
我在这里阅读链接,并尝试使用光标将内容Uri转换为File Uri,但出现此错误:
java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.externalstorage.documents/tree/primary%3AAndroid%2Fdata
是否因为“ Android”和“ data”文件夹之前的字符?尝试创建游标时,它总是失败。
这是我要实现的简单示例。我没有包含用于将Content Uri转换为File Uri的代码。我为此尝试了几乎所有代码,但没有结果。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, SELECT_DIRECTORY)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == SELECT_DIRECTORY) {
val path = data?.data
// convert content Uri to File Uri ?
// store path in shared preferences...
// later use it in File File(storedPath)
}
}
}
我试图在文件管理器应用程序中实现“默认文件夹”功能,并选择一个我想使用其他应用程序的目录,但这对我不起作用。但是感谢@greenapps,我意识到我可以在自己的应用程序中选择默认文件夹。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句