MediaStore提供了对数据库管理的对应信息,并且封装了相关的方法方便上层调用。路径如下:
/frameworks/base/core/java/android/provider/ MediaStore.java
(The Media provider contains meta data for all available media on both internal and external storage devices.)

1. 类结构图

Android 多媒体数据库istrashed 多媒体类数据库有哪些_ide


  下面对这些类进行分析并且总结一下方法和字段。

  首先,是MediaStore类的相关信息,包含在内部存储和外部存储的所有的多媒体文件元数据,提供相应方法和字段。

2. 字段

字段

解析

ACTION_IMAGE_CAPTURE

标准的intent action,发送给相机应用,拍摄照片并返回

ACTION_IMAGE_CAPTURE_SECURE

发送给相机应用,拍摄照片并返回,设备被固定

ACTION_VIDEO_CAPTURE

标准的intent action,发送给相机应用,录制视频并返回

AUTHORITY

“media”

EXTRA_DURATION_LIMIT

指定录像时长的最大值

EXTRA_FINISH_ON_COMPLETION

Intent-extra的名字用来控制MovieView 的onCompletion方法

EXTRA_FULL_SCREEN

Intent-extra的名字用来控制ViewImage的UI

EXTRA_MEDIA_ALBUM

Intent-extra的名字用来定义album

EXTRA_MEDIA_ARTIST

Intent-extra的名字用来定义artist

EXTRA_MEDIA_FOCUS

Intent-extra的名字用来定义search focus.

EXTRA_MEDIA_TITLE

Intent-extra的名字用来定义 song title

EXTRA_OUTPUT

Intent-extra的名字用来表示一个存储图片和视频content resolver 的Uri.

EXTRA_SCREEN_ORIENTATION

Intent-extra的名字用来控制ViewImage或者MovieView.

EXTRA_SHOW_ACTION_ICONS

Intent-extra的名字用来控制ViewImage的UI.

EXTRA_SIZE_LIMIT

指定最大字长.

EXTRA_VIDEO_QUALITY

Intent-extra的名字用来控制录制视频的质量.

INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH

一个显示搜索音乐并且自动播放的Intent

INTENT_ACTION_MEDIA_SEARCH

Activity Action: 显示搜索音乐.

INTENT_ACTION_MUSIC_PLAYER

This constant was deprecated in API level 15. Use CATEGORY_APP_MUSIC instead.

INTENT_ACTION_STILL_IMAGE_CAMERA

Intent action在图片模式下启动camera.

INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE

Intent action在图片模式下启动camera,设备被锁定

INTENT_ACTION_TEXT_OPEN_FROM_SEARCH

显示搜索可读media文件并且自动播放的intent

INTENT_ACTION_VIDEO_CAMERA

Intent action 在录像模式下启动相机

INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH

An intent to perform a search for video media and automatically play content from the result when possible.

MEDIA_IGNORE_FILENAME

Name of the file signaling the media scanner to ignore media in the containing directory and its subdirectories.

MEDIA_SCANNER_VOLUME

Name of current volume being scanned by the media scanner.

UNKNOWN_STRING

The string that is used when a media attribute is not known.

3. 方法

方法名

解析

getMediaScannerUri()

Uri for querying the state of the media scanner.

getVersion(Context context)

Get the media provider’s version.

4. MediaStore内部类

  根据上面的类结构图可知,对于MediaStore内部类的属性也非常重要,下面就其内部类相关信息进行总结。

4.1 Media.Audio

  Media.Audio是所有音频文件的容器。下面分析的是其内部类、字段和方法。

4.1.1 MediaStore.Audio.AlbumColumns

  代表一张专辑的列。

字段

解析

ALBUM

The album on which the audio file appears, if any

ALBUM_ART

Cached album art.

ALBUM_ID

The id for the album

ALBUM_KEY

A non human readable key calculated from the ALBUM, used for searching, sorting and grouping

ARTIST

The artist whose songs appear on this album

FIRST_YEAR

The year in which the earliest songs on this album were released.

LAST_YEAR

The year in which the latest songs on this album were released.

NUMBER_OF_SONGS

The number of songs on this album

NUMBER_OF_SONGS_FOR_ARTIST

This column is available when getting album info via artist, and indicates the number of songs on the album by the given artist.

4.1.2 MediaStore.Audio.Albums

  艺术家,继承BaseColumns, AlbumColumns接口

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

ENTRY_CONTENT_TYPE

The MIME type for entries in this table.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the albums table on the given volume.

4.1.3 MediaStore.Audio.ArtistColumns

  代表一个艺术家的列

字段

解析

ARTIST

The artist who created the audio file, if any

ARTIST_KEY

A non human readable key calculated from the ARTIST, used for searching, sorting and grouping

NUMBER_OF_ALBUMS

The number of albums in the database for this artist

NUMBER_OF_TRACKS

The number of albums in the database for this artist

4.1.4 MediaStore.Audio.Artists

  艺术家 ,继承BaseColumns, ArtistColumns接口

内部类

解析

MediaStore.Audio.Artists.Albums

对于每个艺术家所包含的所有专辑的子目录

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

ENTRY_CONTENT_TYPE

The MIME type for entries in this table.

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the artists table on the given volume.

4.1.5 MediaStore.Audio.AudioColumns

  在多个表中展示出来的音频文件的列

字段

解析

ALBUM

The album the audio file is from, if any

ALBUM_ID

The id of the album the audio file is from, if any

ALBUM_KEY

A non human readable key calculated from the ALBUM, used for searching, sorting and grouping

ARTIST

The artist who created the audio file, if any

ARTIST_ID

The id of the artist who created the audio file, if any

ARTIST_KEY

A non human readable key calculated from the ARTIST, used for searching, sorting and grouping

BOOKMARK

The position, in ms, playback was at when playback for this file was last stopped.

COMPOSER

The composer of the audio file, if any

DURATION

The duration of the audio file, in ms

IS_ALARM

Non-zero if the audio file may be an alarm

IS_MUSIC

Non-zero if the audio file is music

IS_NOTIFICATION

Non-zero if the audio file may be a notification sound

IS_PODCAST

Non-zero if the audio file is a podcast

IS_RINGTONE

Non-zero if the audio file may be a ringtone

TITLE_KEY

A non human readable key calculated from the TITLE, used for searching, sorting and grouping

TRACK

The track number of this song on the album, if any.

YEAR

The year the audio file was recorded, if any

4.1.6 MediaStore.Audio.Genres

  包含音频文件的流派,继承BaseColumns, GenresColumns

内部类

解析

MediaStore.Audio.Genres.Members

对于每种流派所包含的所有成员的子目录

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

ENTRY_CONTENT_TYPE

The MIME type for entries in this table.

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the audio genres table on the given volume.

getContentUriForAudioId(String volumeName, int audioId)

Get the content:// style URI for querying the genres of an audio file.

4.1.7 MediaStore.Audio.GenresColumns

  代表一个音频流派的列

字段

解析

NAME

The name of the genre

4.1.8 MediaStore.Audio.Media

  继承自AudioColumns

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

ENTRY_CONTENT_TYPE

The MIME type for an audio track.

EXTRA_MAX_BYTES

The name of the Intent-extra used to define a maximum file size for a recording made by the SoundRecorder application.

RECORD_SOUND_ACTION

Activity Action: Start SoundRecorder application.

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the audio media table on the given volume.

getContentUriForPath(String path)

4.1.9 MediaStore.Audio.Playlists

  包含音频文件的播放列表

内部类

解析

MediaStore.Audio.Playlists.Members

每个播放列表所包含的所有成员的子目录

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

ENTRY_CONTENT_TYPE

The MIME type for entries in this table.

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the audio playlists table on the given volume.

4.1.10 MediaStore.Audio.PlaylistsColumns

  代表播放列表的列

字段

解析

DATA

Path to the playlist file on disk.

DATE_ADDED

The time the file was added to the media provider Units are seconds since 1970.

DATE_MODIFIED

The time the file was last modified Units are seconds since 1970.

NAME

The name of the playlist

4.1.11 MediaStore.Audio.Radio

  音频文件中的收音机文件

字段

解析

ENTRY_CONTENT_TYPE

The MIME type for entries in this table.

4.2 Media.Files

  Media provider的表,包含了多媒体存储中所有文件的索引,包括非多媒体文件。这个类可以在单词查询中处理多媒体文件和非多媒体文件。

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the files table on the given volume.

getContentUri(String volumeName, long rowId)

Get the content:// style URI for a single row in the files table on the given volume.

4.2.1 MediaStore.Files.FileColumns

  所有多媒体文件的主表字段

字段

解析

MEDIA_TYPE

The media type (audio, video, image or playlist) of the file, or 0 for not a media file

MEDIA_TYPE_AUDIO

Constant for the MEDIA_TYPE column indicating that file is an audio file.

MEDIA_TYPE_IMAGE

Constant for the MEDIA_TYPE column indicating that file is an image file.

MEDIA_TYPE_NONE

Constant for the MEDIA_TYPE column indicating that file is not an audio, image, video or playlist file.

MEDIA_TYPE_PLAYLIST

Constant for the MEDIA_TYPE column indicating that file is a playlist file.

MEDIA_TYPE_VIDEO

Constant for the MEDIA_TYPE column indicating that file is a video file.

MIME_TYPE

The MIME type of the file

PARENT

The index of the parent directory of the file

TITLE

The title of the content

4.3 MediaStore.Images

  包含所有可用图片的元数据。下面是对其内部类的整理:

4.3.1 MediaStore.Images.ImageColumns

  代表所有图片文件的列

字段

解析

BUCKET_DISPLAY_NAME

The bucket display name of the image.

BUCKET_ID

The bucket id of the image.

DATE_TAKEN

The date & time that the image was taken in units of milliseconds since jan 1, 1970.

DESCRIPTION

The description of the image

IS_PRIVATE

Whether the video should be published as public or private

LATITUDE

The latitude where the image was captured.

LONGITUDE

The longitude where the image was captured.

MINI_THUMB_MAGIC

The mini thumb id.

ORIENTATION

The orientation for the image expressed as degrees.

PICASA_ID

The picasa id of the image

4.3.2

  提供各种操作方法,继承ImageColumns

字段

解析

CONTENT_TYPE

The MIME type of of this directory of images.

DEFAULT_SORT_ORDER

The default sort order for this table

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getBitmap(ContentResolver cr, Uri url)

Retrieves an image for the given url as a Bitmap.

getContentUri(String volumeName)

Get the content:// style URI for the image media table on the given volume.

insertImage(ContentResolver cr, String imagePath, String name, String description)

Insert an image and create a thumbnail for it.

insertImage(ContentResolver cr, Bitmap source, String title, String description)

Insert an image and create a thumbnail for it.

query(ContentResolver cr, Uri uri, String[] projection)

query(ContentResolver cr, Uri uri, String[] projection, String where,String orderBy)

query(ContentResolver cr, Uri uri, String[] projection, String selection,String[] selectionArgs, String orderBy)

4.3.3 MediaStore.Images.Thumbnails

  这个类允许开发者去查询并且得到两种略缩图,MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail

字段

解析

DATA

Path to the thumbnail file on disk.

DEFAULT_SORT_ORDER

The default sort order for this table

FULL_SCREEN_KIND

HEIGHT

The height of the thumbnail

IMAGE_ID

The original image for the thumbnal

KIND

The kind of the thumbnail

MICRO_KIND

MINI_KIND

THUMB_DATA

The blob raw data of thumbnail

WIDTH

The width of the thumbnal

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

cancelThumbnailRequest(ContentResolver cr, long origId)

This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately.

cancelThumbnailRequest(ContentResolver cr, long origId, long groupId)

This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately.

getContentUri(String volumeName)

Get the content:// style URI for the image media table on the given volume.

getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options)

This method checks if the thumbnails of the specified image (origId) has been created.

getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options)

This method checks if the thumbnails of the specified image (origId) has been created.

query(ContentResolver cr, Uri uri, String[] projection)

queryMiniThumbnail(ContentResolver cr, long origId, int kind, String[] projection)

queryMiniThumbnails(ContentResolver cr, Uri uri, int kind, String[] projection)

4.4 MediaStore.MediaColumns

  大多数MediaProvider表的常见字段。

字段

解析

DATA

Path to the file on disk.

DATE_ADDED

The time the file was added to the media provider Units are seconds since 1970.

DATE_MODIFIED

The time the file was last modified Units are seconds since 1970.

DISPLAY_NAME

The display name of the file

HEIGHT

The height of the image/video in pixels.

MIME_TYPE

The MIME type of the file

SIZE

The size of the file in bytes

TITLE

The title of the content

WIDTH

The width of the image/video in pixels.

4.5 MediaStore.Video

  包含视频文件的元数据,并提供相应字段和方法。

方法

解析

query(ContentResolver cr, Uri uri, String[] projection)

4.5.1 MediaStore.Video.Media

  提供和获取视频文件的Uri,继承VideoColumns

字段

解析

CONTENT_TYPE

The MIME type for this table.

DEFAULT_SORT_ORDER

The default sort order for this table

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

getContentUri(String volumeName)

Get the content:// style URI for the video media table on the given volume.

4.5.2 MediaStore.Video.Thumbnails

  这个类让开发者去查询并且得到两种略缩图:MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail

字段

解析

DATA

Path to the thumbnail file on disk.

DEFAULT_SORT_ORDER

The default sort order for this table

FULL_SCREEN_KIND

HEIGHT

The height of the thumbnail

KIND

The kind of the thumbnail

MICRO_KIND

MINI_KIND

VIDEO_ID

The original image for the thumbnal

WIDTH

The width of the thumbnal

EXTERNAL_CONTENT_URI

The content:// style URI for the “primary” external storage volume.

INTERNAL_CONTENT_URI

The content:// style URI for the internal storage.

方法

解析

cancelThumbnailRequest(ContentResolver cr, long origId)

This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately.

cancelThumbnailRequest(ContentResolver cr, long origId, long groupId)

This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately.

getContentUri(String volumeName)

Get the content:// style URI for the image media table on the given volume.

getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options)

This method checks if the thumbnails of the specified image (origId) has been created.

getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options)

This method checks if the thumbnails of the specified image (origId) has been created.

4.5.3 MediaStore.Video.VideoColumns

  代表所有视频文件的列

字段

解析

ALBUM

The album the video file is from, if any

ARTIST

The artist who created the video file, if any

BOOKMARK

The bookmark for the video.

BUCKET_DISPLAY_NAME

The bucket display name of the video.

BUCKET_ID

The bucket id of the video.

CATEGORY

The YouTube category of the video

DATE_TAKEN

The date & time that the video was taken in units of milliseconds since jan 1, 1970.

DESCRIPTION

The description of the video recording

DURATION

The duration of the video file, in ms

IS_PRIVATE

Whether the video should be published as public or private

LANGUAGE

The language of the video

LATITUDE

The latitude where the video was captured.

LONGITUDE

The longitude where the video was captured.

MINI_THUMB_MAGIC

The mini thumb id.

RESOLUTION

The resolution of the video file, formatted as “XxY”

TAGS

The user-added tags associated with a video