ADB 相册扫描命令
相册扫描 ADB 命令
参考:https://cloud.tencent.com/developer/article/2309014
Android系统中有一个媒体扫描服务MediaScannerService,它会定期扫描设备存储空间的媒体文件,提取文件信息生成媒体数据库。各类媒体应用如相册、音乐播放器都依赖这个数据库展示文件。当通过adb等方式新增文件时,由于扫描不实时,需要等待下次系统自动扫描或者手动刷新,才能在应用中展现新文件。所以需要adb调用主动扫描。
测试只有 am broadcast 单个文件扫描有效,其它无效(Android 9),之后再试试其它版本。
1、通过am broadcast命令发送扫描广播
Android 9 有效:
am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/1.jpg
Android 9 无效:
am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard/
2、通过adb shell 使用media scanner命令
扫描单个文件
media scanner file /sdcard/DCIM/camera/test.jpg
扫描整个目录
media scanner file /sdcard/DCIM/camera/
命令说明:
adb shell //进入adb shell环境 am //调用Activity Manager broadcast //发送广播 -a //指定action,扫描媒体文件 -d //指定扫描目录
3、注意(执行强制媒体扫描问题)
- 频繁扫描会占用更多CPU和电量,不要过度扫描。
- 广播扫描只通知媒体数据库更新,不会刷新相册应用内存缓存,可能需要重新打开相册应用才能看到最新文件。
- 某些Android版本在外部存储空间需要写入权限,否则扫描会失败。
- 扫描命令返回值需要检查,如果扫描失败则可能需要确认目录权限或重新执行。
- 和目标设备的Android版本相关,部分低版本设备不支持某些扫描命令。

浙公网安备 33010602011771号