约束全清单——让键映射只在需要的场景生效
约束(constraint)决定键映射「什么时候才认」。没有约束的映射全局生效;加了约束,同一条映射就能按场景切换行为。这一页把所有约束按类别盘点,配法在后面两页。
应用与媒体
- 应用已打开 / 不在前台:指定应用处于当前焦点窗口时生效(4.6 起由「应用在前台」更名,语义一致)
- 应用正在播放媒体 / 未播放(2.2+ / 2.4+):指定应用是否在出声
- 有媒体播放 / 无媒体播放(2.4+):任何应用的媒体状态
连接与网络
- 蓝牙设备已连接 / 已断开:指定某个具体蓝牙设备
- WiFi 开/关/已连接/已断开(2.4+)
屏幕与显示
- 屏幕方向(2.2+):横屏或竖屏时才生效
- 屏幕开 / 关:仅限键映射;熄屏检测要配合 Expert Mode 与 root 说明,见约束页内注释
- 显示分辨率(4.3.x+):外接屏/分屏场景
- 锁屏显示 / 未显示(3.0+):锁屏出现时才生效
- 设备已锁定 / 已解锁(2.4+,Android 5.1+):注意熄屏时安卓不允许应用检测按键,所以锁定约束要求屏幕仍亮着
系统状态
- 闪光灯开 / 关(2.4+,Android 6.0+)
- 正在充电 / 放电(2.4.1+)
- 铃音模式(4.3.x+)
- 当前输入法是 / 不是(2.4+)
- 正在通话 / 未通话 / 来电响铃(2.4+)
- 时间(3.1+):在设定时段内生效——夜间自动换映射方案的开关
- 收到通知(4.5+):指定应用发出通知、或标题/正文匹配时生效
- 变量比较(4.6+):配合变量动作做状态判断
约束的两种挂法
- 挂单条映射:编辑页 CONSTRAINTS 标签,最常用
- 指纹手势映射同样支持:指纹编辑页同样有约束与更多标签
用约束代替开关思维
约束的正确用法不是「建一堆开关」,而是让同一个键在不同场景自动换角色:
- 耳机键 + 蓝牙已连接 = 切歌;耳机断开 = 不生效(音量键回归本职)
- 音量键长按 + 相机在前台 = 快门;相机不在 = 开手电筒
- 手柄 A 键 + 视频应用播放中 = 暂停;播放外 = 截图
单个约束怎么叠加出复杂条件?看AND/OR 与约束分组;想直接抄组合,去约束组合实战。