在多年以前,我做一款音乐播放器,要把很多.mp3文件,放置在自己新建的文件夹里面,然后去读取这个新建的文件夹里面的音乐列表,现在想想是多么的无知;

因为只要往手机里面放入.mp3文件,系统会自动检测,并把检测到的结果(.mp3的详细信息)存入数据库,并内容提供者应用,对外暴露音乐相关的所有信息

MediaProvider多媒体内容提供者应用:

MediaProvider内容提供者应用的目录在:

MediaProvider对外暴露的领域:

  1.对外暴漏【(内部存储的:手机自身存储控件的),(外部存储的:sdcard)】的音频相关(.mp3音乐)

  2.对外暴漏【(内部存储的:手机自身存储控件的),(外部存储的:sdcard)】的视频相关

  3.对外暴漏【(内部存储的:手机自身存储控件的),(外部存储的:sdcard)】的图片相关

MediaProvider对外暴露的内容提供者应用 在Android文件系统的目录:

/data/data/com.android.providers.media


阅读MediaProvider内容提供者应用 /data/data/com.android.providers.media 的数据库:

把external.db 导出去,然后打开,audio_meta是所有音频表的详细信息

把external.db 导出去,然后打开,video是所有视频表的详细信息

把external.db 导出去,然后打开,images是所有图片表的详细信息


MediaProvider对外暴露(音频,视频,图片)相关信息:

上一篇博客,Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘,中讲解到通话记录通常是有常量的,真实开发中,必须要用常量,才靠谱,万一字段变来怎么办!

所以要通过ContentProvider去访问MediaProvider的音频/视频/图片/等 的时候,必须全部用常量来操作:

Android API 已经区分来,音频,视频,图片相关的处理:

通过 Media.常量获取外置存储的Uri,播放第一首音乐

Android-ContentProvider理解操作系统的多媒体的更多相关文章

  1. Android ContentProvider 启动分析

    对于 ContentProvider 还不是很熟悉的同学,可以阅读上一篇 Android ContentProvider 基本原理和使用详解.本文主要是对 contentProvider 的源码进行分 ...

  2. Android基础 : Android ContentProvider

    Android 应用程序通过ContentProvider实现方式统一的数据共享功能. 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,在Activi ...

  3. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  4. Android ContentProvider完整案例

    ContentData类,提供数据常量: /** * 提供ContentProvider对外的各种常量,当外部数据需要访问的时候,就可以参考这些常量操作数据. * @author HB * */ pu ...

  5. Android Gradle 理解

    /********************************************************************************* * Android Gradle ...

  6. Android深入理解Context(二)Activity和Service的Context创建过程

    前言 上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程.需要注意的是,本篇的知识 ...

  7. Android ContentProvider基本用法

    转自:https://www.jianshu.com/p/601086916c8f 一.基本概念 ContentProvider是Android系统中提供的专门用户不同应用间进行数据共享的组件,提供了 ...

  8. Android深入理解JNI(二)类型转换、方法签名和JNIEnv

    相关文章 Android深入理解JNI系列 前言 上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换.方法签名和JNIEnv. 1.数据类型的转换 首先给出上一篇文章 ...

  9. Android ContentProvider和getContentResolver

    安卓系统中的数据库SqlLite操作和java中mysql的数据库操作很不一样,造成这样的原因是因为在安卓中数据库是属于进程的不存在数据库客户端,也不存在数据库服务器. 关于SqlLite数据库的文章 ...

随机推荐

  1. MVC Html.DropDownList 和DropDownListFor 的常用方法

    一.非强类型: Controller: ViewData["AreId"] = from a in rp.GetArea() select new SelectListItem { ...

  2. VS调试时JSON格式文件无法加载

    VS调试时JSON格式文件无法加载 报错: 解决:在项目中的web.config中进行配置,configuration节中添加以下部份: <system.webServer> <st ...

  3. TreeGrid

    TreeGrid是树形表格,为了展示成树形,比数据表格主要增加了以下两点: 1.表格属性中设置 idField.treeField 两个属性:idField 表示用于区分上下级的主键,treeFiel ...

  4. book pile SGU - 271

    有n本书从上到下摞在一起,有两种操作.ADD(C)表示把一本新书C放到这一摞书的最顶上,ROTATE表示将前K本书进行反转.在一系列操作后输出最后书的顺序 分析: 当时听别人讲这个题的时候很懵逼,后来 ...

  5. 99. Recover Binary Search Tree (Tree; DFS)

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...

  6. 【总结整理】自带天气app,为什么还要下载

    很简单那就说明用户对天气这个功能的需求并没有表面那么简单呗,还有更深层次的需求~ 先声明我自己是没有这方面需求的,我就纯属YY一下 既然数据都一样的话,那是什么让用户觉得天气APP更专业呢? 1.历史 ...

  7. windows版本免安装redis, nginx, zookeeper

    redis官网:https://redis.io/ windows版本免安装redis下载链接:https://github.com/MSOpenTech/redis/releases nginx官网 ...

  8. MySQL 时间函数加减计算

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+———————+| now() |+ ...

  9. 117. Populating Next Right Pointers in Each Node II 计算右边的附属节点

    [抄题]: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNod ...

  10. leetcode BFS解题思路

    Word Ladder 思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force ...