MediaStore.Audio.Media字段的含义

转载 2013年12月03日 21:00:16

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。

MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍查询SD卡上的音乐文件信息。
先来了解一下ContentResolver的查询接口:
Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);

Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。
Projection: 指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。
selection: 指定查询条件
selectionArgs:参数selection里有 ?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。
SortOrder:指定查询结果的排列顺序
下面的命令将返回所有在外部存储卡上的音乐文件的信息:
Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
得到cursor后,我们可以调用Cursor的相关方法具体的音乐信息:
歌曲ID:MediaStore.Audio.Media._ID

Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));

歌曲的名称 :MediaStore.Audio.Media.TITL
String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));

歌曲的专辑名:MediaStore.Audio.Media.ALBUM
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));

歌曲的歌手名: MediaStore.Audio.Media.ARTIST
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));

歌曲文件的全路径 :MediaStore.Audio.Media.DATA

String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));

歌曲文件的名称:MediaStroe.Audio.Media.DISPLAY_NAME

String display_name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));

歌曲文件的发行日期:MediaStore.Audio.Media.YEAR
String year = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.YEAR));

歌曲的总播放时长 :MediaStore.Audio.Media.DURATION
Int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));

歌曲文件的大小 :MediaStore.Audio.Media.SIZE
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE))

quartz 持久化数据库表格字段解释

quartz 持久化数据库表格字段解释    建表,SQL语句在quartz-1.6.6\docs\dbTables文件夹中可以找到,介绍下主要的几张表:        表qrtz_job_...
  • ccecwg
  • ccecwg
  • 2014年05月13日 11:55
  • 1612

执行计划中各个字段的含义描述及获取方法

本篇文章主要介绍了"执行计划中各个字段的含义描述及获取方法",主要涉及到执行计划中各个字段的含义描述及获取方法方面的内容,对于执行计划中各个字段的含义描述及获取方法感兴趣的同学可以参考一下。 一、概...
  • u012436346
  • u012436346
  • 2017年04月05日 15:30
  • 489

quartz 数据库表含义解释

一、表信息解析: 1.1.qrtz_blob_triggers : 以Blob 类型存储的触发器。  1.2.qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范...
  • dqswuyundong
  • dqswuyundong
  • 2016年11月08日 17:28
  • 1808

Linux top 命令各字段解释

linux下top命令参数解释 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 ...
  • windwhp
  • windwhp
  • 2014年04月24日 17:26
  • 388

11、IP报文的格式,格式的各个字段的含义要理解

IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。 首部各字段的含义如下 1、版本      占4位,指IP协议的版本...
  • xie294777315
  • xie294777315
  • 2014年04月20日 12:28
  • 3674

在LINUX中性能测试监控中常用的TOP命令中,部分字段代表的真正含义

在项目性能测试的中,经常需要监控服务器,DB服务器的各项计算器,其中在LINUX下我们最常用的命令实时查看命令TOP,用的最多,但真正对这一命令的各项值,确又了解甚微,甚至根本不知道这些值所代表的含义...
  • he_jian1
  • he_jian1
  • 2015年01月12日 11:54
  • 2568

linux top显示的各个符号参数意义详解

original url: http://www.ahlinux.com/start/cmd/393.html 在top命令执行过程中一些交互命令: 从使用角度来看,熟练的掌握这些命...
  • junmuzi
  • junmuzi
  • 2015年10月13日 20:18
  • 2961

/etc/fstab 各个字段含义

/etc/fstab  各个字段含义   一、fstab文件的作用 文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以 通过"mount /"命令来加载一个文件系...
  • caisetiankong529
  • caisetiankong529
  • 2014年09月20日 12:37
  • 697

21、UDP报文的格式,字段的意义

1、UDP有两个字段:数据字段和首部字段。 首部字段 首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。 1)源端口:源端口号。在需要对方回信...
  • xie294777315
  • xie294777315
  • 2014年05月03日 10:38
  • 1851

以太网类型字段及值ETHER_TYPE ,类型与含义

EtherType 是以太帧里的一个字段,用来指明应用于帧数据字段的协议。根据 IEEE802.3,Length/EtherType 字段是两个八字节的字段,含义两者取一,这取决于其数值。在量化评估中...
  • wuheshi
  • wuheshi
  • 2015年09月22日 15:36
  • 505
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MediaStore.Audio.Media字段的含义
举报原因:
原因补充:

(最多只允许输入30个字)