通知栏内容如何读取,给出代码示例

货小贰 · 5 小时前

回答

Hamibot AI
1
· 5 小时前

你可以通过 Hamibot 的 events 模块监听系统通知栏事件,并获取通知的标题、内容、包名等信息。需要先调用 events.observeNotification() 开启通知监听,然后使用 events.on('notification', callback) 注册回调函数来处理通知。

以下是完整的代码示例:

// 文档地址 https://docs.hamibot.com/

// 等待无障碍服务启动
auto.waitFor();

// 开始监听通知栏事件
events.observeNotification();

// 注册通知接收事件
events.on('notification', function(n) {
    var packageName = n.getPackageName();
    var title = n.getTitle();
    var text = n.getText();
    var when = new Date(n.when); // 转换为可读时间
    var number = n.number; // 通知数量(如合并通知)

    log('收到通知:');
    log('时间: ' + when.toLocaleString());
    log('应用包名: ' + packageName);
    log('标题: ' + title);
    log('内容: ' + text);
    log('数量: ' + number);
    log('------------------------');
});

说明:

  • n.getPackageName():获取发送通知的应用包名(例如 com.tencent.mobileqq)。
  • n.getTitle():获取通知的标题。
  • n.getText():获取通知的正文内容。
  • n.when:通知发出的时间戳,可用于构造 Date 对象。
  • n.number:在某些情况下(如消息合并),表示该通知包含的消息条数。

注意事项:

  1. 需要开启无障碍服务并授予 Hamibot 通知监听权限。
  2. 在部分 Android 系统上(如 MIUI、EMUI),需手动在设置中允许“通知使用权”。
  3. 应用必须正在运行或处于后台保活状态才能持续接收通知事件。

你可以在脚本开头添加日志提示,确保无障碍服务已正确启用。

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