`

android 获取系统和SD卡音乐

 
阅读更多

获取android系统内置的音乐。

ContentResolver resolver = getContentResolver();

Cursor c = resolver.query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,

null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

// Cursor就能得到系统的音乐

c.moveToNext();没有获取数据就moveToNext是因为c的默认参数是-1而不是0,如果不写这句就会报错

CursorIndexOutOfBoundsException

do {

// System.out.println("TAG+++GAT" + c.getString(1));

SongData songData = new SongData();

songData.setFilename(c.getString(1));

songData.setSongname(c.getString(2));

// Log.e("TGA", c.getString(2));

arrayList.add(songData);

} while (c.moveToNext());

c.close();

红色标注的是获取系统内置音乐的参数。

MediaStore.Audio.Media.INTERNAL_CONTENT_URI 是获取系统内置音乐的参数

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 是获取系统外置SD卡音乐的参数。

c.getString(index)中index每个参数的含义如下:

//--------song是写的一个类文件,主要用来存放获取的内容------------

                song.setFilename(cursor.getString(1));//文件名

                song.setTitle(cursor.getString(2));//歌曲名
                song.setDuration(cursor.getInt(3));//时长
                song.setSinger(cursor.getString(4));//歌手名
                song.setAlbum(cursor.getString(5));//专辑名
                if (cursor.getString(6) != null) {//年代
                     song.setYear(cursor.getString(6));
                } else {
                     song.setYear("未知");
                }
                if ("audio/mpeg".equals(cursor.getString(7).trim())) {//歌曲格式
                     song.setType("mp3");
                } else if ("audio/x-ms-wma".equals(cursor.getString(7).trim())) {
                     song.setType("wma");
                }
                if (cursor.getString(8) != null) {//文件大小
                     float temp = cursor.getInt(8) / 1024f / 1024f;
                     String sizeStr = (temp + "").substring(0, 4);
                     song.setSize(sizeStr + "M");
                } else {
                     song.setSize("未知");
                }
                if (cursor.getString(9) != null) {//文件路径
                     song.setFileUrl(cursor.getString(9));
                }

//--------------------------

 系统的铃声分为多种,如果直接获取系统铃声可能把电话铃声,短信铃声,通知铃声全部获取了。所有的系统铃声都在ROM中的frameworks/base/data/sounds/文件夹下(如果有兴趣搞ROM可以自己下载一下Google 官方源码,自己看一下sounds文件下的目录结构)

只想获取系统的电话铃声:

Cursor c = resolver.query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,

       new String[] { MediaStore.Audio.Media._ID,

               MediaStore.Audio.Media.DATA,

               MediaStore.Audio.Media.TITLE }, "is_ringtone != ?",

       new String[] { "0" }, "_id asc");

 

 

分享到:
评论

相关推荐

    Android中通过MediaStore获取音乐文件信息方法

    当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要...

    android开发揭秘PDF

    1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装...

    Android获取本机各种类型文件的方法

    获取音乐、视频、图片、文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可;如果是6.0或以上,则需要动态申请权限。 FileManager的使用 FileManager是封装好的用于...

    Android开发应用实战详解源代码

    6.8 内存和存储卡 6.9 实现定时闹钟 6.10 黑名单 6.11 桌面背景图片轮换 6.12 监听发送短信状态 6.13 修改默认开机显示 6.14 小结 第7章 娱乐和多媒体应用 7.1 获取图片的宽和高 7.1.1 实现原理 7.1.2 位图操作的...

    新版Android开发教程.rar

    MicroSD 卡 ; QWERTY 全键盘; 310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO ...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

    《Android应用开发揭秘》源码

     1.1.2 Android的系统构架  1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和...

    Android开发与应用——张荣,原书配套课件

    6.3.2 SD卡数据文件 6.4 SQLite数据库 6.4.1 SQLite基本操作 6.4.2 SQLiteOpenHelper 6.5 Content Provider 6.5.1 使用Content Provider发布数据 6.5.2 使用Content Resolver获取数据 6.6 小结 练习 ...

    《Google Android SDK开发范例大全(第3版)》.pdf

    7.10 播放存储卡里的mp3音乐 438 7.11 自制录音/播放录音程序 443 7.12 通过收到短信开始秘密录音 447 7.13 内置影片播放器载入3gp电影 451 7.14 自制3gp影片播放器 455 7.15 相机预览及拍照临时...

    android开发实例大全_王东华

    实例046: 操作存储卡和内存卡中的数据 122 实例047: 设置闹钟 129 实例048: 实现黑名单来电自动静音处理 135 实例049: 设置一个自动开机界面 138 实例050: 更换手机屏幕背景图片系统 140 实例051: 设置自动...

    Google Android SDK开发范例大全(第3版) 1/5

    7.10 播放存储卡里的mp3音乐 7.11 自制录音/播放录音程序 7.12 通过收到短信开始秘密录音 7.13 内置影片播放器载入3gp电影 7.14 自制3gp影片播放器 7.15 相机预览及拍照临时文件 7.16 拍照瞬间启动相机自动对焦 7.17...

    Google Android SDK开发范例大全(第3版) 4/5

    7.10 播放存储卡里的mp3音乐 7.11 自制录音/播放录音程序 7.12 通过收到短信开始秘密录音 7.13 内置影片播放器载入3gp电影 7.14 自制3gp影片播放器 7.15 相机预览及拍照临时文件 7.16 拍照瞬间启动相机自动对焦 7.17...

    Google Android SDK开发范例大全(第3版) 3/5

    7.10 播放存储卡里的mp3音乐 7.11 自制录音/播放录音程序 7.12 通过收到短信开始秘密录音 7.13 内置影片播放器载入3gp电影 7.14 自制3gp影片播放器 7.15 相机预览及拍照临时文件 7.16 拍照瞬间启动相机自动对焦 7.17...

    Google Android SDK开发范例大全(第3版) 5/5

    7.10 播放存储卡里的mp3音乐 7.11 自制录音/播放录音程序 7.12 通过收到短信开始秘密录音 7.13 内置影片播放器载入3gp电影 7.14 自制3gp影片播放器 7.15 相机预览及拍照临时文件 7.16 拍照瞬间启动相机自动对焦 7.17...

Global site tag (gtag.js) - Google Analytics