Skip to content

1.2.6 - 自动熄屏不再中断提醒

Choose a tag to compare

@CangWeiohh CangWeiohh released this 10 Oct 00:58
· 8 commits to main since this release

1.2.6:手机自动熄屏后提醒不再中断

现象与根因

收到短信 → 通知点亮锁屏 → 震动 + 响铃正常 → 几秒后手机自动熄屏 → 震动和声音一起停了。

根因还是"按电源键停止"的实现方式:它用屏幕状态推断按键,而我把 亮屏 → 熄屏 无条件当成"按了电源键"。系统自己也会产生这个切换——通知点亮锁屏后,几秒内会自己再熄掉——于是提醒刚响几秒就被自己停掉了(震动和声音同时消失正是 stopAlert 的行为)。

1.2.6 的判定规则(逐条明确)

事件 处理
熄屏 → 亮屏,且在提醒开始 4 秒内 判为短信通知唤醒 → 忽略,并记住这次是通知唤醒的
熄屏 → 亮屏,在 4 秒之后 停止(睡着的手机上按电源键唤醒)
锁屏状态变为已锁定 停止(真正的锁定动作;通知唤醒不改变锁定状态,不会误判)
亮屏 → 熄屏,且刚才是那条"通知唤醒"息的 忽略(通知自己的超时)→ 提醒继续
亮屏 → 熄屏,且设备当前锁定 忽略(通知超时/自动熄屏)→ 提醒继续
亮屏 → 熄屏,且设备未锁定(正在用手机) 停止(按电源键锁屏)

净效果:通知点亮屏幕、以及它几秒后的自动熄屏,都不再打断提醒。

怎么停止提醒

  • 屏幕是黑的:按一下电源键(点亮)→ 停止;
  • 你正在用手机(未锁定):按一下电源键(锁屏)→ 停止;
  • 屏幕上正显示锁屏界面:第一下会被判为"通知超时"忽略,再按一下即停止。

另外:抬手唤醒(拿起手机)也会被识别为用户操作而停止提醒 —— 系统层面它和"按电源键唤醒"完全无法区分。若不希望拿起手机就停,可以去掉"熄屏→亮屏"这一条,只保留锁定与未锁定熄屏两种判定。

核验

  • host 单测 44 passed / 0 failed
  • detector:三条新判定路径的日志字符串已在产物中确认;零 Hook、未链接 AVFoundation、包内无 SpringBoard 组件与 LaunchDaemon