问题描述
我正在尝试从 android 11 的存储中选择 csv 文件,但它不起作用。
我的代码是:
val uri = FileProvider.getUriForFile(this,BuildConfig.APPLICATION_ID + ".FileProvider",Utils.getDirectoryPath(this)!!)
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.setDataAndType(uri,"text/csv");
startActivityForResult(Intent.createChooser(intent,"Open CSV"),Keys.CHOOSE_FILE_REQUEST)
当我运行此代码时,存储正在打开但一切都被禁用,我无法选择。
低于 Android11 工作正常。
我还在清单中授予了此范围权限。
我还获得了 Android 11 的运行时许可。
uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE".
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (Environment.isExternalStorageManager()) {
chooseCsvFile()
} else {
try {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse(String.format("package:%s",applicationContext.packageName))
startActivityForResult(intent,1)
} catch (e: Exception) {
val intent = Intent()
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
startActivityForResult(intent,1)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)