1. 简介
MediaScanner向上和MediaProvider.MediaScannerService交互, 响应其请求;
向下和JNI交互.
MediaScanner主要工作内容:
(1)接收MediaScannerService的scanDirectories和scanSingleFile请求
(2)获取各个ContentProvider 环境(Audio,Video,Image,File) initialize
(3)获取需要扫描文件列表,移除已删除文件信息 prescan
(4)通过media_jni(android_media_MediaScanner.cpp)调用底层接口处理扫描
(5)接收media_jni处理结果,在android_media_MediaScanner.cpp中保存一个MyMediaScannerClient用于调用MediaScanner
(6)保存获取的文件信息 postscan
代码位置:
frameworks/base/media/java/android/media/MediaScanner.java
2. scanDirectories
scanDirectories(String[] directories, String volumeName)
扫描文件夹,被MSS调用
MediaScanner处理文件夹的具体流程是:
在MediaScanner中
核心代码如下: