启动MediaScanner服务,扫描媒体文件:
1. 程序通过发送下面的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);
}
2. “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服务中进行的,因此不会阻塞当前程序进程。当扫描大量媒体文件且实时性要求不高的情况下,适合使用该扫描方式。
启动MediaScanner服务
本文介绍如何使用Android系统中的MediaScanner服务来扫描特定的文件或目录。通过发送特定Intent,可以实现对媒体文件的有效扫描,而不会阻塞应用程序的运行。
1万+

被折叠的 条评论
为什么被折叠?



