我在android手机上用adb同步音乐。本质上,我rm现有的音乐目录和推动更换音乐文件。
我希望能够使用adb来强制重新扫描,这样google music player(和其他应用程序)就可以正常使用新歌和播放列表了。
根据How can I refresh MediaStore on Android?,您可以通过广播适当的Intent来强制重新扫描。
adb提供了“shell am broadcast”,这似乎允许我从adb强制重新扫描。
或者我可以运行一个重新扫描应用程序或重新启动,但我想从亚行触发重新扫描
我应该发出什么adb命令?音乐文件和播放列表都在/sd卡/音乐。
6条答案
按热度按时间cgyqldqp1#
重新扫描应用程序使用媒体装载意图来启动媒体扫描程序。您可以使用
am broadcast
发送相同的Intent。命令是:
kmbjn2e32#
不再允许非系统应用程序使用MEDIA_MOUNTED Intent(发布KitKat后);试试这个吧。
但是它不是递归的,并且必须在exact_file_name上运行,所以它不是一个好的替代品。
如果需要递归地重新扫描,可以使用以下命令(相应地修复路径):
或者像这样(如果上面的不适合你):
0mkxixxg3#
在一些三星手机上,你可以像这样获得完整的重新扫描:
wlp8pajw4#
如果你已经root了你的手机,你可以使用我写的这个脚本,它的优点是跟踪哪些文件已经更新:
wwwo4jvm5#
下面是一个名为
adb-scan
的Python脚本。它使用adb
来要求Android设备重新扫描给定的文件。示例用法:
以下是脚本:
n7taea2i6#
在较新版本的Android中,您可以使用
content call
来调用scan_volume
方法,以实现以下目标:--method scan_volume
是调用insideMediaStore
的方法--uri content://media
指的是内容提供商授权,在本例中为MediaStore.AUTHORITY
--arg external_primary
是指Environment.getExternalStorageDirectory()
返回的卷的名称要验证它是否有效,您可以使用logcat:
这反过来又显示了类似于: