实现android音乐搜索

时间:2013-04-21 15:23:38

标签: android sqlite search media-player android-sqlite

我正在为Android实现一个音乐播放器,并希望实现搜索功能。 搜索应该查找专辑,艺术家和标题,我希望它们以不同的方式显示。此外,如果我找到了例如艺术家和标题,如果用户点击一个项目(艺术家=显示他的所有歌曲,标题=播放歌曲),我的应用程序应该能够做出正确反应。

我知道有一个MediaStore提供程序(http://developer.android.com/reference/android/provider/MediaStore.Audio.Media.html),但似乎我需要更多功能。如果我这样做一个查询,我现在不会,如果艺术家或标题匹配:

String[] projection = {
    BaseColumns._ID,   
    MediaStore.Audio.Media.MIME_TYPE, 
    MediaStore.Audio.Artists.ARTIST,
    MediaStore.Audio.Albums.ALBUM,
    MediaStore.Audio.Media.TITLE,
};

Cursor c = getContentResolver().query(
    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
    projection, MediaStore.Audio.Media.TITLE + " 
    LIKE "+ "'%"+query+"%' OR " + MediaStore.Audio.Media.ARTIST  + " 
    LIKE "+ "'%"+query+"%'", null, MediaStore.Audio.Media.TITLE);

我正在考虑基于中央Android音乐数据库创建索引,但我不确定这是否可能。

也许有一个简单的解决方案,或者有人已经实现了这样的东西?

1 个答案:

答案 0 :(得分:3)

我自己找到了解决方案。实际上有一个由android系统提供的音乐搜索表,虽然它似乎没有在任何地方记录。无论如何,如果有人有同样的问题,试试这个Uri:content:// media / external / audio / search / fancy /

顺便说一下:我在这个源代码中找到了uri:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.2.2_r1/com/android/music/QueryBrowserActivity.java