AND/OR 模式与约束分组——组合条件的正确搭法
一个约束是筛选,多个约束是逻辑题。这一页讲清楚多条约束之间怎么组合、4.5 之后的分组机制怎么用。
两条约束:AND / OR 单选
只有两条约束时,编辑页提供两个选项:
- AND:两条都满足才触发(应用在前台 且 在充电)
- OR:满足任意一条即触发(连着耳机 或 连着蓝牙键盘)

三条以上:分组机制(4.5+)
约束多了以后,单一 AND/OR 不够用了——4.5 引入约束组:
- 每个组内部独立设置 AND / OR
- 组与组之间再用 AND 或 OR 组合
- 每个组可以自定义名称,方便辨识
- 任何约束都能取反(inverted)——「应用不在前台」「不在充电」这类否定条件不用再找反向约束,直接取反
举例:「(相机在前台 AND 音量键在拍照页)OR(锁屏显示 AND 正在充电)」——这种嵌套条件在旧版本做不出来,4.5+ 的分组下是两个组一组 OR。
编辑体验(4.6 改进)
- 约束支持就地编辑:点开改条件即可,不再需要删除重加
- 编辑页支持撤销/重做,搭条件时随便试
- 设备不支持的约束(没有蓝牙、没有铰链传感器)在选择时直接标注为「不支持」,不会再配出来一条永远不生效的映射
- 列表收起时显示约束图标,一眼看出这条映射挂了什么条件
通用守则
- 约束越多越难排查:映射失灵时先检查是不是某条约束挡了——这是继「后台被杀」之后第二大疑难来源
- AND 收紧、OR 放宽:拿不准时先用 OR 确认动作本身能触发,再逐条收紧成 AND
- 时间约束是兜底神器:白天映射和夜间映射冲突时,用时间约束切分,不需要手动开关组
条件搭好了,怎么验证它按你预想的生效?看三个现成例子:约束组合实战。