在使用 PermissionsDispatcher 进行文件夹访问权限请求时,可以使用以下步骤进行 Android 11(API 级别 30)及更高版本的兼容性处理:

  1. 添加所需的权限到 AndroidManifest.xml 文件中:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. 在项目的 build.gradle 文件中,将 targetSdkVersion 设置为 30 或更高版本:
android {
    // ...
    defaultConfig {
        // ...
        targetSdkVersion 30
    }
}
  1. 在需要访问文件夹的地方,使用 PermissionsDispatcher 进行权限请求。例如,如果需要访问媒体图像文件夹和媒体视频文件夹,可以使用以下代码:
@RuntimePermissions
class MainActivity : AppCompatActivity() {

    private val REQUEST_CODE_MEDIA_IMAGES = 1
    private val REQUEST_CODE_MEDIA_VIDEO = 2

    fun accessMediaFolders() {
        // 请求媒体图像文件夹权限
        MainActivityPermissionsDispatcher.accessMediaImagesWithPermissionCheck(this)

        // 请求媒体视频文件夹权限
        MainActivityPermissionsDispatcher.accessMediaVideoWithPermissionCheck(this)
    }

    @NeedsPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
    fun accessMediaImages() {
        // 访问媒体图像文件夹的逻辑
    }

    @NeedsPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
    fun accessMediaVideo() {
        // 访问媒体视频文件夹的逻辑
    }

    @OnPermissionDenied(Manifest.permission.READ_EXTERNAL_STORAGE)
    fun onPermissionDenied() {
        // 权限被拒绝的处理逻辑
    }

    @OnNeverAskAgain(Manifest.permission.READ_EXTERNAL_STORAGE)
    fun onNeverAskAgain() {
        // 用户选择“不再询问”的处理逻辑
    }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
        // 将权限请求的结果传递给 PermissionsDispatcher
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults)
    }
}

请注意,以上代码仅演示了如何使用 PermissionsDispatcher 请求文件夹访问权限,并未包含实际的文件夹访问逻辑。根据您的需求,您需要在 accessMediaImages()accessMediaVideo() 方法中添加相应的文件夹访问逻辑。

希望这可以帮助到您

permissionsdispatcher 如何兼容android 33 的文件夹访问权限 READ_MEDIA_IMAGES READ_MEDIA_IMAGES READ_MEDIA_VIDEO

原文地址: https://www.cveoy.top/t/topic/iQxQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录