在Android 13及以上版本中,READ_EXTERNAL_STORAGE_PERMISSION权限仍然是可用的,但不再受支持,因此它将不再被视为有效的权限。
为了解决此问题,需要使用新的权限组合,即READ_EXTERNAL_STORAGE和MANAGE_EXTERNAL_STORAGE。在清单文件中添加下面的代码:
此外,还需要使用运行时权限请求来获取这些权限。以下是一个示例,可以在Activity中使用:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.MANAGE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE}, 123); }
当应用程序请求这些权限时,系统将会显示一个对话框,请求用户允许访问文件系统。用户必须授权这些权限才能访问存储。