由于Android 11对文件和目录访问权限进行了更严格的限制,因此必须按照新的规则来访问媒体文件。以下是可行的解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { try { // Requesting the permission through Settings Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (Exception e) { e.printStackTrace(); } }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Environment.isExternalStorageManager()) { // You have the permission } else { // No permission } }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { // Access media files like before } else { // Access media files using the new rules }