上述给出的代码示例是使用不同类型的Uri查询MediaStore的解决方法。以下是完整的示例代码:
Uri uri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL);
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int nameIndex = cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME);
do {
String imageName = cursor.getString(nameIndex);
// 处理图像名称
} while (cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
Uri uri = MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL);
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int nameIndex = cursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME);
do {
String videoName = cursor.getString(nameIndex);
// 处理视频名称
} while (cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
Uri uri = MediaStore.Audio.Media.getContentUri(MediaStore.VOLUME_EXTERNAL);
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int nameIndex = cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME);
do {
String audioName = cursor.getString(nameIndex);
// 处理音频名称
} while (cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
请注意,以上代码示例仅处理了查询结果中的媒体名称。您可以根据需要修改代码来处理其他媒体属性或执行其他操作。
此解决方法仅适用于Android 10及更高版本。如果您的应用程序需要支持旧版本的Android,请使用以前的Uri类型来查询MediaStore。