Android 應用程式(Node)
OpenClaw Android 應用程式的說明文件,作為配套節點應用程式連接至 Gateway。
支援概覽
- 角色:配套節點應用程式(Android 不託管 Gateway)。
- 需要 Gateway:是(在 macOS、Linux 或 Windows via WSL2 上執行)。
- 安裝:入門指南 + Pairing。
- Gateway:操作手冊 + 設定。
- 協定:Gateway protocol(nodes + control plane)。
系統控制
系統控制(launchd/systemd)位於 Gateway 主機上。請參閱 Gateway。
連線操作手冊
Android 節點應用程式透過 mDNS/NSD 和 WebSocket 連接至 Gateway(預設 ws://<host>:18789)。Android 應用程式使用 Gateway 擁有的配對機制。
前提條件
- 您可以在「主要」機器上執行 Gateway。
- Android 裝置/模擬器能連線至 Gateway WebSocket:
- 同一 LAN,透過 mDNS/NSD,或
- 同一 Tailscale tailnet,使用 Wide-Area Bonjour / unicast DNS-SD(見下方),或
- 手動輸入 gateway host/port(備援方式)
- 您可以在 Gateway 機器上(或透過 SSH)執行 CLI(
openclaw)。
1) 啟動 Gateway
openclaw gateway --port 18789 --verbose
確認日誌中看到類似內容:
listening on ws://0.0.0.0:18789
對於僅限 tailnet 的設定(建議用於跨網路場景),將 gateway 繫結至 tailnet IP:
- 在 gateway 主機的
~/.openclaw/openclaw.json中設定gateway.bind: "tailnet"。 - 重新啟動 Gateway / macOS 選單列應用程式。
2) 驗證探索(選用)
從 gateway 機器:
dns-sd -B _openclaw-gw._tcp local.
更多除錯說明:Bonjour。
Tailnet 透過 unicast DNS-SD 探索
Android NSD/mDNS 探索無法跨網路。如果您的 Android 節點和 gateway 位於不同網路但透過 Tailscale 連接,請改用 Wide-Area Bonjour / unicast DNS-SD:
- 在 gateway 主機上設定 DNS-SD 區域(範例:
openclaw.internal.)並發布_openclaw-gw._tcp記錄。 - 為您選擇的網域設定 Tailscale split DNS,指向該 DNS 伺服器。
詳情與 CoreDNS 設定範例:Bonjour。
3) 從 Android 連線
在 Android 應用程式中:
- 應用程式透過前景服務(持續通知)保持 gateway 連線。
- 開啟 Settings。
- 在 Discovered Gateways 下選擇您的 gateway 並點擊 Connect。
- 如果 mDNS 被阻擋,使用 Advanced → Manual Gateway(host + port)並點擊 Connect (Manual)。
首次成功配對後,Android 會在啟動時自動重新連線:
- 手動端點(如已啟用),否則
- 上次發現的 gateway(盡力而為)。
4) 核准配對(CLI)
在 gateway 機器上:
openclaw nodes pending
openclaw nodes approve <requestId>
配對詳情:Gateway pairing。
5) 驗證節點已連線
-
透過 nodes status:
openclaw nodes status -
透過 Gateway:
openclaw gateway call node.list --params "{}"
6) 聊天 + 歷史記錄
Android 節點的 Chat 面板使用 gateway 的主要 session key(main),因此歷史記錄和回覆會與 WebChat 及其他客戶端共享:
- 歷史記錄:
chat.history - 傳送:
chat.send - 推送更新(盡力而為):
chat.subscribe→event:"chat"
7) Canvas + camera
Gateway Canvas Host(建議用於 web 內容)
如果您希望節點顯示代理可以在磁碟上編輯的真實 HTML/CSS/JS,請將節點指向 Gateway canvas host。
注意:節點從 Gateway HTTP 伺服器載入 canvas(與 gateway.port 相同的連接埠,預設 18789)。
-
在 gateway 主機上建立
~/.openclaw/workspace/canvas/index.html。 -
將節點導覽至該位置(LAN):
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18789/__openclaw__/canvas/"}'
Tailnet(選用):如果兩台裝置都在 Tailscale 上,使用 MagicDNS 名稱或 tailnet IP 代替 .local,例如 http://<gateway-magicdns>:18789/__openclaw__/canvas/。
此伺服器會將即時重載客戶端注入 HTML,並在檔案變更時重新載入。
A2UI host 位於 http://<gateway-host>:18789/__openclaw__/a2ui/。
Canvas 指令(僅限前景):
canvas.eval、canvas.snapshot、canvas.navigate(使用{"url":""}或{"url":"/"}返回預設 scaffold)。canvas.snapshot回傳{ format, base64 }(預設format="jpeg")。- A2UI:
canvas.a2ui.push、canvas.a2ui.reset(canvas.a2ui.pushJSONL為舊版別名)
Camera 指令(僅限前景;需要權限):
camera.snap(jpg)camera.clip(mp4)
參數與 CLI 輔助工具請參閱 Camera node。