在Android 13 (SDK 33)中,应用程序必须请求颗粒化媒体权限才能读取设备上的图像、视频和音频文件,而不是使用之前版本中的READ_EXTERNAL_STORAGE权限。下面是一些代码示例,演示如何在应用程序中请求颗粒化媒体权限。
// 检查是否授权颗粒化媒体访问权限 val activityResultCallback = registerForActivityResult(RequestPermission()) { isGranted: Boolean -> if (isGranted) { // 授权通过,进行颗粒化媒体访问操作 performMediaAccess() } else { // 授权未通过,显示提示信息 Toast.makeText(this, "需要颗粒化媒体访问权限", Toast.LENGTH_SHORT).show() } } if (ActivityCompat.checkSelfPermission( this, Manifest.permission.ACCESS_MEDIA_LOCATION ) != PackageManager.PERMISSION_GRANTED) { // 请求颗粒化媒体权限 activityResultCallback.launch(Manifest.permission.ACCESS_MEDIA_LOCATION) } else { // 已经授权,进行颗粒化媒体访问操作 performMediaAccess() }
// 进行颗粒化媒体访问操作 private fun performMediaAccess() { // 处理颗粒化媒体访问的逻辑代码 ... }