在android 11中选择csv文件

问题描述

我正在尝试从 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 (将#修改为@)