Android 11 的图像权限库

Image permission libraries for Android 11

因为 Google 已经更改了 Image/Media 权限的机制,就像上次 Google 为棒棒糖所做的那样。 现在,可以轻松完成此任务的旧库不再适用于 Android 11 台设备。

Android 11 的新 Image/Media 权限库是什么?

在清单中写入此权限

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

然后将此代码添加到您的 activity

  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()
    }