1.啓動MediaScanner服務,掃描媒體文件:
程序通過發送下面的Intent啓動MediaScanner服務掃描指定的文件或目錄:
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:掃描指定文件
public void scanFileAsync(Context ctx, String filePath) {
Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
scanIntent.setData(Uri.fromFile(new File(filePath)));
ctx.sendBroadcast(scanIntent);
}
“android.intent.action.MEDIA_SCANNER_SCAN_DIR”:掃描指定目錄
public static final String ACTION_MEDIA_SCANNER_SCAN_DIR = "android.intent.action.MEDIA_SCANNER_SCAN_DIR";
public void scanDirAsync(Context ctx, String dir) {
Intent scanIntent = new Intent(ACTION_MEDIA_SCANNER_SCAN_DIR);
scanIntent.setData(Uri.fromFile(new File(dir)));
ctx.sendBroadcast(scanIntent);
}
這種掃描方式中,由於掃描工作是在MediaScanner服務中進行的,因此不會阻塞當前程序進程。當掃描大量媒體文件且實時性要求不高的情況下,適合使用該掃描方式。