事件起因:
我们的测试报出一个问题,插着U盘开机(我们的机顶盒),多媒体文件未扫描到(U盘里有视频文件还有音乐文件)。说本地的视频文件列表还有音乐列表也是空的。
我是做应用的,兼顾Framework仓库的维护。负责媒体扫描的是MediaProvider.apk。。。义不容辞,这个问题当然是我来负责解决。
问题分析:
1.首先,我显示查看MediaProvider.apk所对应的源码实现。其源码实现很简单,下面我做一下简单的说明。
主要的两个类如下:MediaScannerReceiver.java和MediaScannerService.java。
MediaScannerReceiver.java源码
private final static String TAG = "MediaScannerReceiver";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "onReceive,action:" + action);
Uri uri = intent.getData();
if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
// 收到开机广播,扫描内部存储
scan(context, Medi