获取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");

更多相关文章

  1. Android 调用系统播放器
  2. android 调用系统日历
  3. appium启动APP配置参数:
  4. Android 扫描音乐文件、两种方式获取文件最新修改时间
  5. android 文件保存方法 sd卡中或系统
  6. Android 自定义Toast,不使用系统Toast
  7. [置顶] 基于Android2.3.5系统:Java JDK ADT Android SDK for Ecli
  8. Android 调用系统的照相,浏览图片,转存并裁剪!
  9. 如何更换Android系统默认字体(Android6.0)

随机推荐

  1. android EditText被键盘遮住的问题
  2. 退出整个Android程序的工具类
  3. Android(安卓)Studio 导入项目时遇到sdk
  4. 【Android XMPP】 学习资料收集贴(持续更
  5. Android Studio安装、配置
  6. Ubuntu 下配置使用Android(安卓)adb
  7. Android 应用 APK 签名常用配置
  8. 无废话Android之smartimageview使用、and
  9. Android修改原生RatingBar颜色、大小,以及
  10. Android模拟器adb命令介绍