本網站為獨立社群專案,與 OpenClaw 官方無任何關聯。內容僅供參考。 了解更多

翻譯文件

本頁為社群翻譯版本,可能與官方最新內容有出入。 查看官方英文原文 →

Android 應用程式(Node)

OpenClaw Android 應用程式的說明文件,作為配套節點應用程式連接至 Gateway。

支援概覽

  • 角色:配套節點應用程式(Android 不託管 Gateway)。
  • 需要 Gateway:是(在 macOS、Linux 或 Windows via WSL2 上執行)。
  • 安裝:入門指南 + Pairing
  • Gateway:操作手冊 + 設定

系統控制

系統控制(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:

  1. 在 gateway 主機上設定 DNS-SD 區域(範例:openclaw.internal.)並發布 _openclaw-gw._tcp 記錄。
  2. 為您選擇的網域設定 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 keymain),因此歷史記錄和回覆會與 WebChat 及其他客戶端共享:

  • 歷史記錄:chat.history
  • 傳送:chat.send
  • 推送更新(盡力而為):chat.subscribeevent:"chat"

7) Canvas + camera

Gateway Canvas Host(建議用於 web 內容)

如果您希望節點顯示代理可以在磁碟上編輯的真實 HTML/CSS/JS,請將節點指向 Gateway canvas host。

注意:節點從 Gateway HTTP 伺服器載入 canvas(與 gateway.port 相同的連接埠,預設 18789)。

  1. 在 gateway 主機上建立 ~/.openclaw/workspace/canvas/index.html

  2. 將節點導覽至該位置(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.evalcanvas.snapshotcanvas.navigate(使用 {"url":""}{"url":"/"} 返回預設 scaffold)。canvas.snapshot 回傳 { format, base64 }(預設 format="jpeg")。
  • A2UI:canvas.a2ui.pushcanvas.a2ui.resetcanvas.a2ui.pushJSONL 為舊版別名)

Camera 指令(僅限前景;需要權限):

  • camera.snap(jpg)
  • camera.clip(mp4)

參數與 CLI 輔助工具請參閱 Camera node