我正在为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音乐数据库的索引,但我不确定这是否可能。
也许有一个简单的解决方案,或者有人已经实现了这样的东西?
发布于 2013-04-25 03:33:36
我自己找到了一个解决方案。实际上,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
https://stackoverflow.com/questions/16132766
复制相似问题