适用于 Android 11

问题描述

因为谷歌改变了图像/媒体权限的机制,就像谷歌上次为棒棒糖做的那样。 现在,可以轻松完成此任务的旧库不再适用于 Android 11 设备。

Android 11 有哪些新的图像/媒体权限库?

解决方法

在清单中写入此权限

<uses-permission
            android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
            android:minSdkVersion="30" />

然后将此代码添加到您的活动中

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            if (!Environment.isExternalStorageManager()) {
                requestPermission()
            } 
        }

fun ManageStoragePermission() {
        alertDialog = alertdialog.builder(this@mainactivity).create()
        alertDialog.setMessage("You need to Allow Manage External files Permission")
        alertDialog.setButton(
            AlertDialog.BUTTON_POSITIVE,"OK"
        ) { dialog,which -> intentToPermisn() }
        alertDialog.setButton(
            AlertDialog.BUTTON_NEGATIVE,"Cancel"
        ) { dialog,which -> this.finish() }
        alertDialog.show()
    }

    private fun intentToPermisn() {
        val intent = Intent()
        intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
        startActivity(intent)
        manage_check = true
        alertDialog.dismiss()
    }