在Android 10中,应用程序需要特殊权限才能访问外部存储。如果您的应用程序需要在Android 10上访问外部存储,但又不想请求MANAGE_EXTERNAL_STORAGE权限,可以考虑使用以下替代方法:
// 查询照片文件
String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME};
String selection = MediaStore.Images.Media.DATA + " like ? ";
String[] selectionArgs = new String[]{"%your_directory_name%"};
String sortOrder = MediaStore.Images.Media.DISPLAY_NAME + " ASC";
Cursor cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
sortOrder
);
if (cursor != null) {
while (cursor.moveToNext()) {
String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
// 处理照片文件
}
cursor.close();
}
请注意,此示例代码中的%your_directory_name%
应替换为您要查询的目录名称。
// 创建文件
File file = new File(getExternalFilesDir(null), "your_file_name.txt");
try {
if (file.createNewFile()) {
// 文件创建成功
} else {
// 文件已存在
}
} catch (IOException e) {
e.printStackTrace();
}
// 访问文件
File file = new File(getExternalFilesDir(null), "your_file_name.txt");
try {
FileInputStream fis = new FileInputStream(file);
// 读取文件内容
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
请注意,这里的"your_file_name.txt"
应替换为您要创建和访问的文件名称。
这些是在Android 10上替代使用MANAGE_EXTERNAL_STORAGE权限的两种常用方法。根据您的应用程序需求,选择适合您的方案。