在AndroidManifest.xml文件中添加以下权限:
检查是否已经授予了权限,如果没有,则需要请求该权限: if (Environment.isExternalStorageManager()) { // 已经授予权限,可以访问所有文件 // ... } else { // 请求授予权限 Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.addCategory("android.intent.category.DEFAULT"); intent.setData(Uri.parse(String.format("package:%s", getPackageName()))); startActivityForResult(intent, REQUEST_CODE_MANAGE_EXTERNAL_STORAGE_PERMISSION); }
处理用户的授权结果: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_MANAGE_EXTERNAL_STORAGE_PERMISSION) { if (Environment.isExternalStorageManager()) { // 用户已经授予权限,可以访问所有文件 // ... } else { // 用户拒绝授予权限,不能访问所有文件 // ... } } super.onActivityResult(requestCode, resultCode, data); }
访问Android 11+设备的所有文件: File externalFilesDir = getExternalFilesDir(null); File[] files = externalFilesDir.listFiles(); if (files != null) { for (File file : files) { // 处理文件 // ... } }