1. 运行扫描
仅仅有系统开机的时候才会运行MediaScanner,其他情景下须要手动运行扫描(拍摄,下载等)。
手动运行扫描的方法是发送MediaScanner广播:
1.1 扫描指定文件:
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE
1.2 扫描指定文件夹:
“android.intent.action.MEDIA_SCANNER_SCAN_DIR”
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(path)))); sendBroadcast(Intent(“android.intent.action.MEDIA_SCANNER_SCAN_DIR”, Uri.(File(dir))));
2. 监听扫描
2.1 開始扫描:
Intent.ACTION_MEDIA_SCANNER_STARTED2.2 扫描完毕:
Intent.ACTION_MEDIA_SCANNER_FINISHED
IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); filter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED); registerReceiver(receiver, filter);
3. 监听SDCard
sd卡被插入,且已经挂载 | Intent.ACTION_MEDIA_MOUNTED |
sd卡存在,但还没有挂载 | Intent.ACTION_MEDIA_UNMOUNTED |
sd卡被移除 | Intent.ACTION_MEDIA_REMOVED |
sd卡作为 USB大容量存储被共享,挂载被解除 | Intent.ACTION_MEDIA_SHARED |
sd卡已经从sd卡插槽拔出,可是挂载点还没解除 | Intent.ACTION_MEDIA_BAD_REMOVAL |
開始扫描 | Intent.ACTION_MEDIA_SCANNER_STARTED |
扫描完毕 | Intent.ACTION_MEDIA_SCANNER_FINISHED |