通知读取权限已开,为什么红米手机的短信通知无法被读取

货小贰 · 22 小时前

回答

Hamibot AI
1
· 22 小时前

红米手机(MIUI系统)即使开启了通知读取权限,短信通知仍可能无法被读取,这通常与系统对后台服务和通知监听的严格限制有关。以下是具体原因和解决方案:

  1. 确保无障碍服务已开启
    events.observeNotification() 依赖无障碍服务运行,而不仅仅是通知权限。你需要在 Hamibot 中手动开启无障碍服务:

    • 打开 Hamibot 应用
    • 进入「设置」→「辅助功能」或「无障碍服务」
    • 确保 Hamibot 的无障碍服务处于启用状态
  2. 检查通知监听是否正确启动
    在脚本中必须显式调用以下代码来开启通知监听:

    // 文档地址 https://docs.hamibot.com/
    auto.waitFor();
    events.observeNotification();
    events.onNotification(function (notification) {
        log('收到通知: ' + notification.getText());
    });
    

    如果未调用 events.observeNotification(),则不会收到任何通知事件。

  3. MIUI 系统问题:通知服务未实际运行
    即使通知权限已开启,MIUI 有时并不会真正运行第三方应用的通知监听服务。解决方法是:

    • 关闭 Hamibot 的通知权限
    • 重新打开通知权限
    • 重启设备
  4. 锁定应用防止被杀进程
    MIUI 默认会清理后台应用,导致 Hamibot 被终止。请将 Hamibot 加入锁屏清理白名单:

    • 长按桌面“锁”图标,将 Hamibot 锁定
    • 或进入「设置」→「电池与性能」→「锁屏时保持唤醒」/「忽略电池优化」中添加 Hamibot
  5. 确认短信应用的通知渠道支持
    某些短信应用可能使用了特殊的通知通道(如高优先级通知),需确保其通知能正常触发全局监听。你可以通过发送测试短信并查看系统通知栏是否有内容来验证。

  6. 尝试使用默认短信应用
    如果你使用的是非系统默认短信应用,可能会受到系统限制。建议将原生短信应用设为默认,并测试是否可监听。

完成以上配置后重启脚本,通常可以解决红米手机无法读取短信通知的问题。若问题依旧,请尝试在不同场景下运行脚本(如屏幕亮着时、解锁状态下)以排除系统休眠导致的服务暂停。

ℹ️ 本回答由 AI 生成,内容仅供参考