如何解决MediaFilePicker始终显示空目录
我只复制了以下代码段,并注释了路径和根路径。并始终显示空目录,如下图所示。
import React from "react";
const {useContext} = React
我也在下面尝试过,但是没有用
MaterialFilePicker()
.withActivity(this)
.withCloseMenu(true)
//.withPath(alarmsFolder.absolutePath)
//.withRootPath(externalStorage.absolutePath)
.withHiddenFiles(true)
.withFilter(Pattern.compile(".*\\.(jpg|jpeg)$"))
.withFilterDirectories(false)
.withTitle("Sample title")
.withRequestCode(FILE_PICKER_REQUEST_CODE)
.start()
解决方法
这是权限问题。您必须在运行时添加权限。下面的代码段无需进行任何修改即可正常运行。
private fun checkPermissionsAndOpenFilePicker() {
val permissionGranted = ContextCompat.checkSelfPermission(
requireContext(),Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED
if (permissionGranted) {
openFilePicker()
} else {
if (shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) {
showError()
} else {
requestPermissions(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),PERMISSIONS_REQUEST_CODE)
}
}
}
private fun showError() {
Toast.makeText(
context,"Allow external storage reading",Toast.LENGTH_SHORT
).show()
}
override fun onRequestPermissionsResult(
requestCode: Int,permissions: Array<String>,grantResults: IntArray
) {
if (requestCode == PERMISSIONS_REQUEST_CODE) {
if (grantResults.isNotEmpty() && grantResults.first() == PackageManager.PERMISSION_GRANTED) {
openFilePicker()
} else {
showError()
}
}
}
private fun openFilePicker() {
MaterialFilePicker()
.withSupportFragment(this)
.withRequestCode(FILE_PICKER_REQUEST_CODE)
.withHiddenFiles(true)
.withFilter(Pattern.compile(".*\\.(jpg)$"))
.start()
}
override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (requestCode == FILE_PICKER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
data ?: throw IllegalArgumentException("data must not be null")
val path = data.getStringExtra(FilePickerActivity.RESULT_FILE_PATH)
if (path != null) {
Log.d("Path (fragment): ",path)
Toast.makeText(
context,"Picked file in fragment: $path",Toast.LENGTH_LONG
).show()
}
}
}
companion object {
private const val PERMISSIONS_REQUEST_CODE = 0
private const val FILE_PICKER_REQUEST_CODE = 1
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。