android - MediaStore.Audio 检索包含音频的所有目录的列表

标签 android audio android-contentprovider mediastore

我正在尝试获取包含音频的所有目录的列表。这是我正在使用的代码:

@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 给我文件的标题。

但是,我想要的是运行一个查询,该查询向我返回包含音频内容的所有文件夹/目录(它们的路径、名称和音频数量)的列表。 感谢您的帮助。

最佳答案

我能够从设备中检索到包含 audios 的所有文件夹/目录的列表。通过使用以下代码。

@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;
}

这段代码生成并返回一个游标,该游标查询内容提供者所有具有 Media_Type 的文件作为 audio 加上每个文件夹中的音频数以及路径和名称的文件夹。

关于android - MediaStore.Audio 检索包含音频的所有目录的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701290/

相关文章:

android - 明智地获取所有联系人时间戳

android - Android 的 contentDescription 标签的真正目的是什么?

android - 创建一个从解析的 XML URL 返回结果的异步任务类

java - 如何在android中用逗号解析JSON?

android - soundPool.load上下文问题

android - xml中如何使用gradle placeholder applicationId做唯一的contentProvider权限

java - 模型类对象列表中的数据未正确检索?

java - 未从 Android 中的 URL 打开文件进行预览

audio - Java音频转换器api

html - 范围请求和 HTML5 音频