打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android获取本地音乐列表
// MediaStore不需要permission(妈的,这屁谁放的,权限必须加,不然直接崩!!),因为通过intent调起的activity已经具备这些权限。
        // getContentResolver()方法定义Context类中,
        // 在4.1之前,我们都可能会遇到过这样的场景,我们的应用程序访问了ContentProvider,但是这个ContentProvider意外挂了,
        // 这个时候我们的应用程序也将被连带杀死!这是Android处于对数据安全的考虑而做的决定,不过貌似Google也感觉这样的方式不太友好,
        // 所以在4.1以后提出了stable和unstable的概念。对于ContentResolver的query方法,我们将默认使用unstable的ContentProvider。
        //http://www.cnblogs.com/zhainanJohnny/articles/3275908.html
        // unstable
        // ContentProvider在query过程中如果发生了DeadObjectExeption则会被捕获,进而重新获取一个stable
        // 的ContentProvider。
        // query(uri, projection, selection, selectionArgs, sortOrder,
        // cancellationSignal)...最后一个参数是就是实现重新获取一个stable的ContentProvider。
        // 但是下面的代码并不是用的6个参数的query而是五个参数的query



        Cursor cursor = this.getContentResolver().query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
                MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
        for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){
            //歌曲信息
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
            String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
            String uriData = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
            long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
            Song song = new Song(uriData, title, artist, size);
            list.add(song);
        }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ContentProvider
Android多媒体
Android 中 DownLoadManager 实现文件下载
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(conten...
总结篇之七:ContentProvider之读写短消息
android Contacts读取手机号码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服