如何修改ADB命令以静音当前前台运行的应用?
针对前台应用的ADB静音命令修改方案
要实现对当前前台应用的静音,你需要先动态获取前台应用的包名,再将其代入原有的cmd appops命令中,具体修改如下:
1. 单条链式命令(Android 10+ 推荐)
将获取前台包名的逻辑与静音命令结合,一次性完成操作:
cmd appops set $(cmd activity get-top-app | grep -oP 'package=\K[^ ]+') PLAY_AUDIO deny
命令拆解:
cmd activity get-top-app:Android 10及以上系统可直接通过该命令获取前台应用的详细信息grep -oP 'package=\K[^ ]+':从输出结果中精准提取包名字符串(\K用于忽略前缀package=)- 整个
$(...)部分会被替换为前台应用的包名,最终传入cmd appops set执行静音操作
2. 兼容旧版本Android的方案(Android 9及以下)
如果设备系统版本低于Android 10,可改用dumpsys命令提取包名:
cmd appops set $(dumpsys window windows | grep -E 'mCurrentFocus' | awk '{print $NF}' | cut -d '/' -f 1) PLAY_AUDIO deny
命令拆解:
dumpsys window windows | grep -E 'mCurrentFocus':获取当前焦点窗口的关联信息awk '{print $NF}':提取输出的最后一列(格式为包名/活动名)cut -d '/' -f 1:从包名/活动名格式中拆分出纯包名
3. 恢复前台应用音频权限
如需取消静音,只需将命令中的deny替换为allow:
cmd appops set $(cmd activity get-top-app | grep -oP 'package=\K[^ ]+') PLAY_AUDIO allow
内容的提问来源于stack exchange,提问作者Vicky Lahkar
相关产品推荐
相关产品推荐

