Android MediaScanner:(二)MediaScannerReceiver
2014-09-24 21:49
357 查看
http://blog.csdn.net/thl789/article/details/7583358
田海立@csdn
2012-05-19
本文是笔者的分析归纳,并用UML图(ClassDiagram/Sequence Diagram)来呈现。虽然来源于对Android源码的分析,但文中不会占用大量篇幅罗列源码,所以读者在阅读本文时,手头最好有Android源码,结合源码来解读。本文讲述MediaScanner的入口MediaScannerReciever针对不同Broadcast的请求所做的处理。
在上文中的图中可以讲到,MediaScannerReceiver处理三种Broardcast请求:
BOOT_COMPLETED 系统启动之后,扫描内部Media文件;
MEDIA_MOUNTED 外部存储卡挂载之后,扫描外部Media;
MEDIA_SCANNER_SCAN_FILE 扫描外部存储器上的一个媒体文件。
下图MediaScanner针对每一种请求的处理:
![](http://my.csdn.net/uploads/201205/19/1337423734_6284.png)
如果收到的是BOOT_COMPLETED,设置参数“volume”为“internal”,通过startService()启动MediaScannerService开始内部Media文件扫描;
如果收到的是MEDIA_MOUNTED 并且path是“/mnt/sdcard”,设置参数“volume”为“external”,通过startService()启动MediaScannerService开始外部整个Media文件扫描;
如果收到的是MEDIA_MOUNTED 并且path不是“/mnt/sdcard”,设置参数“volume”为“external”,“folder”为所要扫描的路径,通过startService()启动MediaScannerService开始对外部某个路径进行Media文件扫描;
如果收到的是MEDIA_SCANNER_SCAN_FILE ,设置参数“filepath”为获取到的文件,通过startService()启动MediaScannerService开始对外部某个文件进行扫描。
【小结】本文讲述MediaScanner的入口MediaScannerReciever针对不同Broadcast的请求(BOOT_COMPLETED/MEDIA_MOUNTED/ MEDIA_SCANNER_SCAN_FILE)所做的处理。
扫描如何实现的,接下来看MediaScannerService中的实现。
田海立@csdn
2012-05-19
本文是笔者的分析归纳,并用UML图(ClassDiagram/Sequence Diagram)来呈现。虽然来源于对Android源码的分析,但文中不会占用大量篇幅罗列源码,所以读者在阅读本文时,手头最好有Android源码,结合源码来解读。本文讲述MediaScanner的入口MediaScannerReciever针对不同Broadcast的请求所做的处理。
在上文中的图中可以讲到,MediaScannerReceiver处理三种Broardcast请求:
BOOT_COMPLETED 系统启动之后,扫描内部Media文件;
MEDIA_MOUNTED 外部存储卡挂载之后,扫描外部Media;
MEDIA_SCANNER_SCAN_FILE 扫描外部存储器上的一个媒体文件。
下图MediaScanner针对每一种请求的处理:
![](http://my.csdn.net/uploads/201205/19/1337423734_6284.png)
如果收到的是BOOT_COMPLETED,设置参数“volume”为“internal”,通过startService()启动MediaScannerService开始内部Media文件扫描;
如果收到的是MEDIA_MOUNTED 并且path是“/mnt/sdcard”,设置参数“volume”为“external”,通过startService()启动MediaScannerService开始外部整个Media文件扫描;
如果收到的是MEDIA_MOUNTED 并且path不是“/mnt/sdcard”,设置参数“volume”为“external”,“folder”为所要扫描的路径,通过startService()启动MediaScannerService开始对外部某个路径进行Media文件扫描;
如果收到的是MEDIA_SCANNER_SCAN_FILE ,设置参数“filepath”为获取到的文件,通过startService()启动MediaScannerService开始对外部某个文件进行扫描。
【小结】本文讲述MediaScanner的入口MediaScannerReciever针对不同Broadcast的请求(BOOT_COMPLETED/MEDIA_MOUNTED/ MEDIA_SCANNER_SCAN_FILE)所做的处理。
扫描如何实现的,接下来看MediaScannerService中的实现。
相关文章推荐
- Android MediaScanner:(二)MediaScannerReceiver
- Android MediaScanner:(二)MediaScannerReceiver
- Android MediaScanner:(三)MediaScannerService
- Android MediaScanner:(一)MediaScanner总体架构
- Android MediaScanner:(一)MediaScanner总体架构
- Android MediaScanner:(三)MediaScannerService
- check android Media Scanner is running-检查Android Media Scanner 是否在运行
- Android 多媒体扫描过程(Android Media Scanner Process)
- 从mediaReceiver到mediaScanner的扫描过程
- Android 多媒体扫描过程(Android Media Scanner Process)
- Android媒体扫描详细解析之一(MediaScanner & MediaProvider)
- Android MediaScanner 详尽分析
- 【译】Android 多媒体扫描过程(Android Media Scanner Process)
- Android MediaScanner 详尽分析 基于2.2
- Android Media Scanner Process
- Android MediaScanner 详尽分析
- MediaScanner分析 - MediaScanner.cpp
- Android Media Scanner Mechanism Analyze
- MediaScannerReceiver
- MediaScannerReceiver