MediaStore.Audio 检索所有包含音频的目录列表
MediaStore.Audio retrieve list of all the directories that contain audios
我正在尝试获取包含音频的所有目录的列表。这是我正在使用的代码:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = new String[]{MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME};
String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME + " ASC";
CursorLoader cursorLoader = new CursorLoader(context,MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,projection,null,null,sortOrder);
return cursorLoader;
}
MediaStore.Audio.Media.DATA
给出了所有音频文件的列表及其文件路径(附加了它们的名称)。
MediaStore.Audio.Media.Display_Name
给我文件的标题。
但是,我想要的是 运行 一个查询 returns 我是所有包含音频的 folders/directories (它们的路径、名称和音频数量)的列表内容。
感谢任何帮助。
我能够从设备中检索到包含 audios
的所有 folders/directories 的列表。通过使用以下代码。
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = new String[]{"COUNT(" + MediaStore.Files.FileColumns.DATA + ") AS totalFiles",
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Files.FileColumns.PARENT,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DISPLAY_NAME
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + " = " + MediaStore.Files.FileColumns.MEDIA_TYPE_AUDIO +
" OR "+ MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO +
") GROUP BY (" + MediaStore.Files.FileColumns.PARENT;
String sortOrder = MediaStore.Files.FileColumns.DISPLAY_NAME + " ASC";
CursorLoader cursorLoader = new CursorLoader(context, MediaStore.Files.getContentUri("external"), projection, selection, null, sortOrder);
return cursorLoader;
}
这段代码使 returns 一个游标,它查询内容提供者,其中包含 Media_Type
为 audio
的所有文件加上每个文件夹中的音频数以及路径和名称的文件夹。
我正在尝试获取包含音频的所有目录的列表。这是我正在使用的代码:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = new String[]{MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME};
String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME + " ASC";
CursorLoader cursorLoader = new CursorLoader(context,MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,projection,null,null,sortOrder);
return cursorLoader;
}
MediaStore.Audio.Media.DATA
给出了所有音频文件的列表及其文件路径(附加了它们的名称)。
MediaStore.Audio.Media.Display_Name
给我文件的标题。
但是,我想要的是 运行 一个查询 returns 我是所有包含音频的 folders/directories (它们的路径、名称和音频数量)的列表内容。 感谢任何帮助。
我能够从设备中检索到包含 audios
的所有 folders/directories 的列表。通过使用以下代码。
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = new String[]{"COUNT(" + MediaStore.Files.FileColumns.DATA + ") AS totalFiles",
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Files.FileColumns.PARENT,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DISPLAY_NAME
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + " = " + MediaStore.Files.FileColumns.MEDIA_TYPE_AUDIO +
" OR "+ MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO +
") GROUP BY (" + MediaStore.Files.FileColumns.PARENT;
String sortOrder = MediaStore.Files.FileColumns.DISPLAY_NAME + " ASC";
CursorLoader cursorLoader = new CursorLoader(context, MediaStore.Files.getContentUri("external"), projection, selection, null, sortOrder);
return cursorLoader;
}
这段代码使 returns 一个游标,它查询内容提供者,其中包含 Media_Type
为 audio
的所有文件加上每个文件夹中的音频数以及路径和名称的文件夹。