在使用adb 命令删除设备SD卡中的图片文件后,发现系统的图库并未更新,这样就造成一些图片软件上显示无法加载图片的问题(例如Instagram),因为该照片已被“删除”。
通过adb shell rm命令删除图片后,想要系统图库同时更新,只需要向发送一条MEDIA_SCANNER_SCAN_FILE的广播即可。
操作也非常简单,这里简单介绍下通过adb发送系统广播:
打开shell,输入am broadcast,即可查看到相关的用法说明
am broadcast: send a broadcast Intent. Options are:
--user <USER_ID> | all | current: Specify which user to send to; if not
specified then send to all users.
--receiver-permission <PERMISSION>: Require receiver to hold permission.
以及部分Intent的用法
<INTENT> specifications include these flags and arguments:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
通过发送广播扫描指定文件
am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://%PATH%
实例:
#删除SD卡中的图片文件
adb shell rm /sdcard/DCIM/Camera/ILSVRC2015_test_001.JPEG
#发送广播,通知系统扫描指定的文件,达到更新图库的目的
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/emulated/0/DCIM/Camera/ILSVRC2015_test_0001.JPEG
转载请标明出处