获取SD卡上所有的音乐文件信息

在系统启动、插拔USB的时候,系统会把SD卡上所有的音乐文件信息保存到数据库,可以使用Content Provider获取到所有信息:

ContentResolver cr = getApplication().getContentResolver(); if (cr == null) { return; } // 获取所有歌曲 Cursor cursor = cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); if (null == cursor) { return; } if (cursor.moveToFirst()) { do { String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); } while (cursor.moveToNext()); }
不过这存在一些缺点,我在模拟器上调试的时候,发现获取到的字符串,只要含有中文就是乱码,这可能是因为,音乐文件中相关信息在中国采用的是GBK编码,在英语国家采用的是其他编码造成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值