我正在为 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 音乐数据库的索引,但我不确定这是否可能。
也许有一个简单的解决方案,或者有人已经实现了这样的东西?