回答
红米手机(MIUI系统)即使开启了通知读取权限,短信通知仍可能无法被读取,这通常与系统对后台服务和通知监听的严格限制有关。以下是具体原因和解决方案:
-
确保无障碍服务已开启
events.observeNotification()依赖无障碍服务运行,而不仅仅是通知权限。你需要在 Hamibot 中手动开启无障碍服务:- 打开 Hamibot 应用
- 进入「设置」→「辅助功能」或「无障碍服务」
- 确保 Hamibot 的无障碍服务处于启用状态
-
检查通知监听是否正确启动
在脚本中必须显式调用以下代码来开启通知监听:// 文档地址 https://docs.hamibot.com/ auto.waitFor(); events.observeNotification(); events.onNotification(function (notification) { log('收到通知: ' + notification.getText()); });如果未调用
events.observeNotification(),则不会收到任何通知事件。 -
MIUI 系统问题:通知服务未实际运行
即使通知权限已开启,MIUI 有时并不会真正运行第三方应用的通知监听服务。解决方法是:- 关闭 Hamibot 的通知权限
- 重新打开通知权限
- 重启设备
-
锁定应用防止被杀进程
MIUI 默认会清理后台应用,导致 Hamibot 被终止。请将 Hamibot 加入锁屏清理白名单:- 长按桌面“锁”图标,将 Hamibot 锁定
- 或进入「设置」→「电池与性能」→「锁屏时保持唤醒」/「忽略电池优化」中添加 Hamibot
-
确认短信应用的通知渠道支持
某些短信应用可能使用了特殊的通知通道(如高优先级通知),需确保其通知能正常触发全局监听。你可以通过发送测试短信并查看系统通知栏是否有内容来验证。 -
尝试使用默认短信应用
如果你使用的是非系统默认短信应用,可能会受到系统限制。建议将原生短信应用设为默认,并测试是否可监听。
完成以上配置后重启脚本,通常可以解决红米手机无法读取短信通知的问题。若问题依旧,请尝试在不同场景下运行脚本(如屏幕亮着时、解锁状态下)以排除系统休眠导致的服务暂停。
ℹ️ 本回答由 AI 生成,内容仅供参考