Android MediaScanner:(二)MediaScannerReceiver

本文是笔者的分析归纳,并用UML图(ClassDiagram/Sequence Diagram)来呈现。虽然来源于对Android源码的分析,但文中不会占用大量篇幅罗列源码,所以读者在阅读本文时,手头最好有Android源码,结合源码来解读。本文讲述MediaScanner的入口MediaScannerReciever针对不同Broadcast的请求所做的处理。

 

上文中的图中可以讲到,MediaScannerReceiver处理三种Broardcast请求:

  •  BOOT_COMPLETED 系统启动之后,扫描内部Media文件;
  •  MEDIA_MOUNTED 外部存储卡挂载之后,扫描外部Media;
  •  MEDIA_SCANNER_SCAN_FILE 扫描外部存储器上的一个媒体文件。

下图MediaScanner针对每一种请求的处理:

MediaScannerReceiver

  •  如果收到的是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中的实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值