Android中扫描多媒体文件操作详解
内容摘要
这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等。本人将通过对源代码
文章正文
这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等。本人将通过对源代码的分析,一一解释这些问题。
Android中的多媒体文件扫描机制
Android提供了一个很棒的程序来处理将多媒体文件加入的媒体库中。这个程序就是MediaProvider,现在我们简单看以下这个程序。首先看一下它的Receiver
android.media.MediaScanner.java 具体扫描过程就请点击左侧链接查看。
如何扫描一个刚创建的文件
这里介绍两种方式来实现将新创建的文件加入媒体库。
最简单的方式
只需要发送一个正确的intent广播到MediaScannerReceiver即可。
http://developer.android.com/reference/android/media/MediaScannerConnection.html
如何扫描多个文件
1.发送多个Intent.ACTION_MEDIA_SCANNER_SCAN_FILE广播
2.使用MediaScannerConnection,传入要加入的路径的数组。
为什么发送MEDIA_SCANNER_SCAN_FILE广播不生效
关于为什么有些设备上不生效,很多人认为是API原因,其实不是的,这其实和你传入的文件路径有关系。看一下接收者Receiver的onReceive代码。
Code Snippet for Media on Android
One More Thing
你可以通过查看/data/data/com.android.providers.media/databases/external.db(不同系统略有不同)文件可以了解更多的信息。
代码注释