1.Android中所有的多媒体文件除了存储在物理硬盘上,还会将文件信息(路径、id、类型、)保存到数据库中,这样当我们想要获取这些文件的信息时,就不需要耗时的扫描硬盘,只需要读数据库就可以了。Android平台中称手机终端内存为内部存储空间,称SD卡为外部存储空间。针对内部和外部存储空间中的媒体文件信息是分开管理的,各自有独立的数据库管理。外部存储空间和内部存储空间对应的卷标为”external”和”internal”。
2.数据库的数据都会由相应的内容提供者暴露出来,根据预先定义的URI,可以轻松获取这些数据
3.安卓有一个服务专门用于将文件信息扫描添加到数据库中,该服务开机自启动(监听了开机广播),也可以由开发人员在特定的时机主动发送广播更新数据库的信息,比如刚刚保存了一张图片希望立刻在图库中看到。
第一种方式:启动 MediaScanner服务,后台扫描媒体文件
启动方式:
开始扫描和结束扫描时都会发送一个全局的广播,第三方应用程序也可以通过注册这两个广播来避开在media 扫描的时候往改扫描文件夹里面写入或删除文件
系统发送的开始扫描时广播和扫描完成的广播
第一种方式:启动 MediaScanner服务,后台扫描媒体文件
启动方式:
开始扫描和结束扫描时都会发送一个全局的广播,第三方应用程序也可以通过注册这两个广播来避开在media 扫描的时候往改扫描文件夹里面写入或删除文件
系统发送的开始扫描时广播和扫描完成的广播
如何检索获取安卓图片数据库的所有信息:
使用内容解析者通过Uri: 获取这些信息
数据库位置:data/data/com.android.providers/media/databases/external.db
获取图库图片信息的Uri:Media.EXTERNAL_CONTENT_URI和Media.INTERNAL_CONTENT_URI分别是访问外部SD卡和内部存储数据库的Uri
获取音视频文件信息和这个大体相同:
音频内容URL: MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 数据库位置:data/data/com.android.providers/media/databases/external.db
视频内容URL: MediaStore.Video.Media.EXTERNAL_CONTENT_URI 数据库位置:data/data/com.android.providers/media/databases.external.db