去重规则需考虑设备是否在用
别名: 正在使用的设备 · 通知路由 · active device · 手表接管通知
概念解释
人坐在已解锁的电脑前,同一条通知仍让口袋里的手机振动,手表再震一次——去重如果只是「随便留一路」,留错了路。去重要看哪台在用:正在被注视、正在被操作的那台优先出声或出横幅,其余设备沉默。iPhone 锁着、手表戴在腕上时,通知改走手表,就是这条规则;电脑亮着且在前台时,横幅应留在电脑。它决定的是「这一路留给谁」,不是「总共响几次」的上限,也不是读完之后怎么清残渣。
机制
「在用」是一个可观察的短窗口:屏幕亮、未锁定、最近有输入、戴在身上、或在视野距离内。投递系统若忽略这些信号,就只能按设备清单广播或按固定优先级(永远先手机)。固定优先级会在错误的身体位置出声:人在打字,振动却在另一只口袋。活动信号有滞后和误判——电脑屏保还没亮、人已经走开;手表误判在戴。所以路由需要滞回:刚离开的设备在数秒内仍可视为在用,刚亮起的设备要有一次输入或解锁才接过通知。多台同时在用(电脑亮着、手表也在腕上)时要有一条总规则,例如「有键盘活动则电脑优先,否则穿戴设备优先」,否则又会变回同时响。路由错了的那一次,人会关掉整类通知,而不是去调「哪台优先」。
边界
没有可靠在用信号的设备(一台长期亮着的厨房平板、投屏中的电视)不能当「在用」来吞掉手机上的提醒,否则人在另一房间会漏掉。来电、闹钟、导航转向这些以「被身体感知」为成功的事件,穿戴设备即使电脑在用也应能振,因为手还在键盘上、眼睛不一定能离开文档。隐私场景(手机扣在桌面、专注模式)是在用信号的反面,应把通知压到更私的那台,而不是送到最大的屏。信号互相矛盾时(电脑解锁但长时间无输入,手机刚被拿起),应偏向最近一次明确输入的设备,并允许一次误路由后的手动「改到这台」。
怎么落地
- 为每台设备维护一个短时「在用」状态:解锁且近几秒有输入、或穿戴检测为戴上;投递时只让其中优先级最高的一台出声或出横幅。
- 写明并列时的次序(例如:有键鼠活动的电脑 > 戴着的手表 > 解锁的手机 > 其他),并在设置里可改,而不是藏在镜像开关里。
- 在用状态的切换加几秒滞回,避免人刚把手从键盘挪开、通知就跳到手机再跳回来。
- 验证:电脑解锁并连续打字时发一条测试通知,横幅应出现在电脑,手机和手表不应振动。锁屏电脑、戴上手表再发一条,应改走手表。拿起手机解锁后再发,应走手机。三步里任何一步多路出声,或出声落在未在用的那台,都算路由失败。