Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:MediaStore缺少艺术家和专辑_Android_Sqlite_Mediastore - Fatal编程技术网

Android:MediaStore缺少艺术家和专辑

Android:MediaStore缺少艺术家和专辑,android,sqlite,mediastore,Android,Sqlite,Mediastore,我目前正在从事的一个项目要求应用程序在android设备上发现所有音频曲目。除了曲目,它还必须能够按专辑和艺术家对它们进行分组 我找到了MediaStore内容提供者,并开始创建一个数据库助手实用程序类,以快速返回曲目、相册和艺术家的ID。我已经能够查询媒体存储,返回一些结果,但似乎不是所有的音频信息都存储在那里 例如,查询所有艺术家只返回9个结果,而Android音乐播放器应用程序返回27个结果 我使用以下代码查询艺术家: ContentResolver resolver = getConte

我目前正在从事的一个项目要求应用程序在android设备上发现所有音频曲目。除了曲目,它还必须能够按专辑和艺术家对它们进行分组

我找到了MediaStore内容提供者,并开始创建一个数据库助手实用程序类,以快速返回曲目、相册和艺术家的ID。我已经能够查询媒体存储,返回一些结果,但似乎不是所有的音频信息都存储在那里

例如,查询所有艺术家只返回9个结果,而Android音乐播放器应用程序返回27个结果

我使用以下代码查询艺术家:

ContentResolver resolver = getContentResolver();
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST};
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI;

Cursor c = null;

    try {
        c = resolver.query(uri, projection, null, null, null);
    } 
    catch (UnsupportedOperationException e) {
        Log.e("DatabaseHelper", "query: " + e);
        c = null;
    }

    if(c != null) {
        while(c.isAfterLast() == false) {
            Log.e("ARTIST", "NAME: " + cursor.getString(0));
            cursor.moveToNext();
        }
    }
似乎媒体扫描程序(在设备启动时肯定会运行)没有检测到我的大部分音频库。我做错什么了吗

我只是想快速高效地找到所有的音频曲目、音频专辑和音频艺术家。如果MediaStore不能帮助我,那么我担心我将不得不实现某种形式的文件扫描程序来遍历目录结构并构建自己的数据库,但我不想这样做;)

任何想法都将不胜感激


谢谢。

也许,您还应该查询android.provider.MediaStore.Audio.Albums.INTERNAL\u CONTENT\u URI,以便在media player中看到其余内容