OpenClaw Node App 通知(Notifications)指令完全攻略|讀取、清除、回覆

OpenClaw Node App 通知(Notifications)指令完全攻略

這篇文章會介紹 OpenClaw Node App 的「通知」功能,讓你能夠讀取、管理手機上的所有通知。

>

實驗日期:2026-04-19
實驗設備:Vivo V2514(Android 16)
OpenClaw 版本:2026.4.19.09ver

一、什麼是 Notifications 功能?

想像一下

當你安裝 OpenClaw Node App 並連線到你的手機後,你可以即時讀取手機上的所有通知。不僅如此,你還可以:

  • 📋 查看有哪些 App 發送了通知
  • ✅ 清除(dismiss)不需要的通知
  • 💬 直接回覆通知(適用於 LINE、Messenger 等即時通訊 App)
  • 📱 點擊通知打開相關 App

實用場景

  • 📱 遠端查看通知:不在手機旁邊時,也能知道有沒有人找你
  • 🗑️ 自動清除廣告通知:每天定時清理不需要的通知
  • 💬 快速回覆:直接透過指令回覆 LINE 或 Messenger 訊息
  • 🔍 稽核通知:查看某段時間有哪些 App 發送了通知

二、 Notifications 指令家族

根據我們的原始碼分析,Notifications 功能有 2 個指令

指令功能說明
notifications.list列出通知取得手機上所有通知的列表
notifications.actions執行動作對指定通知執行操作(開啟、關閉、回覆)

三、指令詳細說明

1. notifications.list

用途: 取得目前所有通知的快照

指令格式:

openclaw nodes invoke --node "V2514" --command notifications.list --params '{}'

回傳內容:

{
  "enabled": true,
  "connected": true,
  "count": 11,
  "notifications": [
    {
      "key": "0|com.linkedin.android|XXXXXXXX|null|XXXXX",
      "packageName": "com.linkedin.android",
      "postTimeMs": XXXXXXXXXXXXX,
      "isOngoing": false,
      "isClearable": true,
      "title": "錯過的通知",
      "text": "看看您可能沒看到的 LinkedIn 動態",
      "channelId": "UnreadNotificationsChannelWithSound"
    },
    {
      "key": "0|ai.openclaw.app|1|null|10476",
      "packageName": "ai.openclaw.app",
      "postTimeMs": 1776598123006,
      "isOngoing": true,
      "isClearable": false,
      "title": "OpenClaw Node · Connected",
      "text": "Connected",
      "channelId": "connection"
    }
  ]
}

回傳欄位說明:

欄位類型說明
enabledboolean是否已啟用通知監聽權限
connectedboolean通知監聽服務是否已連線
countnumber通知的數量
notificationsarray通知陣列

通知物件欄位:

欄位類型說明
keystring通知的唯一識別碼(用於 actions)
packageNamestring發送通知的 App 套件名稱
titlestring通知標題
textstring通知內容
subTextstring通知副標題(如果有)
categorystring通知分類(如 msgemail
channelIdstringAndroid 的通知頻道 ID
postTimeMsnumber通知發送的時間(毫秒)
isOngoingboolean是否為持續性通知(如正在通話)
isClearableboolean是否可以被用戶清除

2. notifications.actions

用途: 對指定通知執行動作

指令格式:

openclaw nodes invoke --node "V2514" --command notifications.actions --params '{
  "key": "<通知的 key>",
  "action": "<open|dismiss|reply>",
  "replyText": "<回覆文字(只用於 reply 動作)>"
}'

支援的動作:

動作說明範例
open點擊通知,開啟相關 App開啟 LINE 聊天室
dismiss清除通知(相當於滑掉)移除廣告通知
reply回覆通知(需要 replyText直接回覆訊息

動作參數:

參數必填說明
key通知的唯一識別碼(從 list 取得)
action動作:opendismissreply
replyText回覆文字(只用於 reply 動作)

四、實際測試結果

測試 1:列出所有通知

openclaw nodes invoke --node "V2514" --command notifications.list --params '{}'

結果:

{
  "ok": true,
  "payload": {
    "enabled": true,
    "connected": true,
    "count": 11,
    "notifications": [ ... 11 個通知 ... ]
  }
}

結論: ✅ 成功


測試 2:清除通知(dismiss)

openclaw nodes invoke --node "V2514" --command notifications.actions --params '{
  "key": "0|jp.naver.line.android|XXXXXXXX|null|XXXXX",
  "action": "dismiss"
}'

結果:

{
  "ok": true,
  "payload": {
    "ok": true,
    "key": "0|jp.naver.line.android|XXXXXXXX|null|XXXXX",
    "action": "dismiss"
  }
}

結論: ✅ 成功

再次查詢通知列表,確認該通知已消失。


測試 3:錯誤處理

我們測試了各種錯誤情況,系統都能正確回應錯誤訊息:

測試情況錯誤碼錯誤訊息
通知不存在NOTIFICATIONNOTFOUNDnotification key not found
缺少 key 參數INVALID_REQUESTkey required
缺少 action 參數INVALID_REQUESTaction required (open\dismiss\reply)
無效的 actionINVALID_REQUESTaction must be open\dismiss\reply
reply 缺少 replyTextINVALID_REQUESTreplyText required for reply action

五、使用範例

範例 1:查看誰傳訊息給你

假設你想知道有沒有人傳 LINE 訊息給你:

openclaw nodes invoke --node "V2514" --command notifications.list --params '{}'

觀察回傳中的 packageName 是否為 jp.naver.line.android,以及 category 是否為 msg


範例 2:清除所有 LinkedIn 通知

# 先列出通知
openclaw nodes invoke --node "V2514" --command notifications.list --params '{}'

# 找到 LinkedIn 通知的 key,假設是:
# "0|com.linkedin.android|XXXXXXXX|null|XXXXX"

# 清除它
openclaw nodes invoke --node "V2514" --command notifications.actions --params '{
  "key": "0|com.linkedin.android|XXXXXXXX|null|XXXXX",
  "action": "dismiss"
}'

範例 3:回覆 LINE 訊息

# 假設有 LINE 訊息通知,key 是:
# "0|jp.naver.line.android|XXXXXXXX|null|XXXXX"

# 直接回覆訊息
openclaw nodes invoke --node "V2514" --command notifications.actions --params '{
  "key": "0|jp.naver.line.android|XXXXXXXX|null|XXXXX",
  "action": "reply",
  "replyText": "好的,我收到訊息了!"
}'

六、注意事項

1. 通知監聽權限

首次使用 Notifications 功能時,Android 系統會要求你授權通知存取權。這是 Android 系統的安全機制,確保只有用戶同意的 App 才能讀取通知。

開啟方式:

  1. 進入「設定」→「應用程式」→「OpenClaw Node」
  2. 點擊「通知存取權限」
  3. 啟用「OpenClaw Node」

2. 回覆功能的限制

並非所有通知都支援回覆功能。只有以下情況才能回覆:

  • 通知本身有回覆按鈕(如 LINE、Messenger)
  • App 支援快速回覆(Quick Reply)

3. 並非所有通知都能清除

有些通知是「持續性的」(isOngoing: true),例如:

  • 正在通話中的通知
  • 音樂播放中的通知
  • GPS 導航通知

這些通知的 isClearablefalse,無法被清除。


七、與其他功能的比較

Notifications vs SMS

功能用途資料範圍
Notifications讀取所有 App 的通知所有通知
SMS只讀取簡訊僅 SMS 簡訊

Notifications vs CallLog

功能用途資料範圍
Notifications讀取通知所有通知
CallLog讀取通話記錄僅通話記錄

八、底層技術架構

Android NotificationListenerService

OpenClaw Android App 使用 Android 的 NotificationListenerService 來監聽系統通知。這是 Android 原生的 API,專門設計用於:

  • 讀取所有通知
  • 監聽通知的變化(新增/移除)
  • 執行動作(開啟、清除、回覆)

通知轉發機制

[App 發送通知]
    ↓
[Android 系統]
    ↓
[NotificationListenerService]
    ↓
[OpenClaw Node App]
    ↓
[Gateway]
    ↓
[用戶(透過 Telegram 等)]

九、常見問題

Q1:為什麼「通知存取權限」需要特別授權?

A:這是 Android 的安全設計。通知可能包含敏感資訊(如銀行 OTP、私人訊息),所以 Google 要求 App 必須明確取得用戶授權才能讀取通知。


Q2:為什麼有些通知的「回覆」功能無法使用?

A:只有 App 開發者在通知中加入了「快速回覆」按鈕時才能使用。目前主要只有即時通訊 App(LINE、Messenger、WhatsApp)支援這個功能。


Q3:為什麼有些通知無法被清除?

A:這是 App 開發者設定的。持續性通知(如通話、導航、音樂)通常被設為不可清除,以確保用戶不會意外關閉重要通知。


Q4:OpenClaw 會儲存我的通知內容嗎?

A:不會。OpenClaw Node App 只會將通知內容轉發給 Gateway,不會儲存在任何地方。你的隱私受到保護。


十、結語

Notifications 功能是 OpenClaw Node App 中非常實用的功能之一。它讓你能夠:

  • 📱 隨時查看手機上的所有通知
  • 🗑️ 自動清除不需要的通知
  • 💬 快速回覆即時通訊訊息
  • 🔍 稽核一段時間內的通知記錄

這個功能完全運行在你的本地裝置上,不會將通知資料上傳到任何雲端伺服器,隱私安全有保障。


文章更新:2026-04-19

感謝微風提供測試設備和建議!

留言