通过查询数据库方法获取系统中是否有歌曲以及歌曲信息,如歌曲名,专辑名,歌手名称,歌曲文件大小。

上代码,对应字段对应信息。

public class AudioSongUtil {public static ArrayList<Song> getAllSongs(Context context) {Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,new String[]{MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.ALBUM,MediaStore.Audio.Media.YEAR,MediaStore.Audio.Media.MIME_TYPE,MediaStore.Audio.Media.SIZE,MediaStore.Audio.Media.DATA},MediaStore.Audio.Media.MIME_TYPE + "=? or "+ MediaStore.Audio.Media.MIME_TYPE + "=?",new String[]{"audio/mpeg", "audio/x-ms-wma"}, null);ArrayList<Song> songs = new ArrayList<>();if (cursor != null && cursor.moveToFirst()) {Song song;do {song = new 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 size = cursor.getInt(8) / 1024f / 1024f;song.setSize((size + "").substring(0, 4) + "M");} else {song.setSize("未知");}// 文件路径if (cursor.getString(3) != null) {song.setFileUrl(cursor.getString(3));}songs.add(song);} while (cursor.moveToNext());cursor.close();}return songs;}

下面是歌曲实体类

public class Song {private String fileName;private String title;private int duration;private String singer;private String album;private String year;private String type;private String size;private String fileUrl;public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getDuration() {return duration;}public void setDuration(int duration) {this.duration = duration;}public String getSinger() {return singer;}public void setSinger(String singer) {this.singer = singer;}public String getAlbum() {return album;}public void setAlbum(String album) {this.album = album;}public String getYear() {return year;}public void setYear(String year) {this.year = year;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}public String getFileUrl() {return fileUrl;}public void setFileUrl(String fileUrl) {this.fileUrl = fileUrl;}public Song() {super();}public Song(String fileName, String title, int duration, String singer,String album, String year, String type, String size, String fileUrl) {super();this.fileName = fileName;this.title = title;this.duration = duration;this.singer = singer;this.album = album;this.year = year;this.type = type;this.size = size;this.fileUrl = fileUrl;}@Overridepublic String toString() {return "Song [fileName=" + fileName + ", title=" + title+ ", duration=" + duration + ", singer=" + singer + ", album="+ album + ", year=" + year + ", type=" + type + ", size="+ size + ", fileUrl=" + fileUrl + "]";}
}

开发中用到,记录下来,希望对大家有用。

注:该方法只有数据库有变化时,数据才会有变化

Android 获取系统中歌曲信息,如歌曲名,歌手名等相关推荐

  1. Android获取系统的硬件信息、系统版本以及如何检测ROM类型

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52438706 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  2. R语言sys方法:sys.info函数获取系统和用户信息、sys.localeConv函数获取当前区域中的数字和货币表示的详细信息、sys.setFileTime函数更改文件的时间

    R语言sys方法:sys.info函数获取系统和用户信息.sys.localeConv函数获取当前区域中的数字和货币表示的详细信息.sys.setFileTime函数更改文件的时间 目录

  3. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

    一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...

  4. android获取进程内存使用信息、一键加速(内存清理)与进程重要级别解析

    android获取进程内存使用信息.一键加速(内存清理)与进程重要级别解析 获取进程内存使用信息 获取单个或多个进程 获取系统内存状态的信息 MemoryInfo说明 内存清理 killBackgro ...

  5. C/C++通过WMI和系统API函数获取获取系统硬件配置信息(转)

    前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU.内存.网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windo ...

  6. windows编程点滴(一)之Windows获取系统中所有进程

    Tool help function     PSAPI functions (PROCECC STATUS) 1.结构体PROCESSENTRY32 typedef struct tagPROCES ...

  7. 获取系统中已经安装的文字输入法

    //获取系统中已经安装的文字输入法InputLanguageCollection MyInputs = InputLanguage.InstalledInputLanguages;//获取当前输入法信 ...

  8. linux 查看usb日志,Linux中显示系统中USB信息的lsusb命令

    Linux中显示系统中USB信息的lsusb命令 通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体播放器.磁盘和网络适配器等等 - 来源:Wikiped ...

  9. IOS获取系统通讯录联系人信息

    2019独角兽企业重金招聘Python工程师标准>>> IOS获取系统通讯录联系人信息 一.权限注册 随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统 ...

最新文章

  1. Windows 8 应用开发 - 本地数据存储
  2. [安卓基础] 006.打开另一个Activity
  3. esp8266 lcd 天气_8266WIFI加LCD显示时间及天气pm25
  4. 文巾解题 1. 两数之和
  5. 【整理】ABAP 7.40新特性介绍(下)
  6. 三个实例演示 Java Thread Dump 日志分析
  7. 《文献管理与信息分析》课程学习笔记
  8. Palo Alto Networks全球化安全堡垒理念 提升企业防御能力
  9. python文本内容怎么转换成字典_怎么把照片上的文字转换成文本?照片转换文字神器来了...
  10. 面试精讲之面试考点及大厂真题 - 分布式专栏 17 ElasticSearch解决大数据量检索难题
  11. Iperf 源代码分析(四)
  12. Python Flask 微信验证
  13. 我国计算机把计算机分为巨型,把计算机分为巨型机大中型机按照什么分的
  14. Postman接口自动化测试之— 请求参数进行MD5/SHA256摘要计算
  15. python爬虫,g-mark网站图片数据爬取及补坑
  16. 一个小需求引发的思考
  17. 网络协议(十四):WebSocket、WebService、RESTful、IPv6、网络爬虫、HTTP缓存
  18. J2EE是什么?和JavaEE的是什么关系?
  19. Workspaces for Mac(高效率文件管理软件)
  20. linux系统Centos7重置root密码

热门文章

  1. git如何同步本地仓库与远程仓库代码
  2. php缓存输出压缩,PHP缓冲机制:缓冲控制,压缩http响应数据,缓冲 PHP输出
  3. JAVA实现通过绑定邮箱找回密码功能
  4. JAVA 小型点餐系统 文章中含有源码
  5. 《计算机视觉》集大网课学习笔记【5】
  6. FileBeat系列:multiline的pattern negate match使用方法
  7. 程序员的梗_程序员的这些梗!你都知道吗?
  8. 小米手机离一坨屎的距离
  9. 在下列选项中不属于python特点的是_在下列选项中,不属于 Python特点的是( )。_学小易找答案...
  10. 搭配Online:特朗普:俄罗斯及沙特将大幅减产,沙特、俄罗斯:你在无中生有