Android上怎样实现搜索SD卡上面的所有MP3文件?

弓厶弓厶 2012-01-16 08:17:17
RT,请教各位大虾~
Lucene这个有人提过,但是觉得这个框架的体积比较大,而且又不是需要什么功能,只是要搜索就OK了。
...全文
1017 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mourinho 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 allen526 的回复:]

Java code

ContentResolver resolver = context.getContentResolver();

Cursor cursor = resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI ,
new String[]{...},……
[/Quote]

正解
音频文件信息存储在
/data/data/com.android.providers.media/databases/ 下的external.db中的audio表
可以用sqlite3打开,不过需要有system权限
allen526 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lph279430114 的回复:]

这个看了一下,发现是和数据打交道哦。我在Android上面还没学习过关于数据库的东西,而且我搜索的MP3没有提交过数据库,这个也能查出来?而且这样的话当需要指定一个路径的时候怎么办?那些参数我上网查了一下没查到什么,所以也就不太明白这些差数的意思了。
[/Quote]
这个是标准方法.只要插着SD卡的android手机以USB连接模式接上PC,就会把手机里的内容和DB同步.我没有实际弄过音乐文件的.不过图象文件的类似处理我做过,android自代的gallery就是这样做的.你可以试试使用adb shell命令去删除sd卡上的图象,即使你删了gallery里还是能显示已经删除图象的略缩图,再用USB联上PC,再看看gallery,你会发现这时才完完全全的看不到那张图了. 我虽然没有试过声音的,不过我觉得应该是一样的.
android_baiyuchuan 2012-01-18
  • 打赏
  • 举报
回复
contentprovoider正解,不过在使用的时候要考虑,系统数据库中的数据是不会随着文件变化后就马上变化滴! 需要发开机广播·
BadPattern 2012-01-18
  • 打赏
  • 举报
回复
android里边framework中的类MediaScanner是实现这样的功能的,它根据MediaFile中定义的媒体类型(音乐,视频,图片)调用native方法实现递归扫描sd卡,解析相应的信息并存入MediaProvider这个数据库.
如果你只是想单纯的获取系统的音乐信息,自己做播放器,就按楼上几位所说的通过ContentResolver查询MediaProvider数据库,如果你自己想了解其中的原理,建议研究MediaProvider和MediaScanner
wyx100 2012-01-18
  • 打赏
  • 举报
回复
可以用Intent过滤文件类型
a-white-lie 2012-01-18
  • 打赏
  • 举报
回复
循环递归查找
CyberLogix 2012-01-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 allen526 的回复:]

Java code

ContentResolver resolver = context.getContentResolver();

Cursor cursor = resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI ,
new String[]{...},……
[/Quote]

这个正确在加上STAGEFRIGHT中的SniffMP3函数就可以了,:-)
追风筝的孩子 2012-01-17
  • 打赏
  • 举报
回复
系统不是自带一个music的app吗?楼主需要研究下那个app
弓厶弓厶 2012-01-17
  • 打赏
  • 举报
回复
这个看了一下,发现是和数据打交道哦。我在Android上面还没学习过关于数据库的东西,而且我搜索的MP3没有提交过数据库,这个也能查出来?而且这样的话当需要指定一个路径的时候怎么办?那些参数我上网查了一下没查到什么,所以也就不太明白这些差数的意思了。
逐Ls梦 2012-01-17
  • 打赏
  • 举报
回复
恩,也可以用Intent过滤文件类型
allen526 2012-01-17
  • 打赏
  • 举报
回复

ContentResolver resolver = context.getContentResolver();

Cursor cursor = resolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI ,
new String[]{...},
null,
null,
null
);

再加上对mp3文件的查循条件应该就可以了.

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧