openclaw 网盘下载
OpenClaw

文档

首页 > 文档 > Android 应用

Android 应用

Android 应用(节点)

支持概览

  • 角色:配套节点应用(Android 不托管 Gateway 网关)。
  • 需要 Gateway 网关:是(在 macOS、Linux 或通过 WSL2 的 Windows 上运行)。
  • 安装:入门指南 + 配对
  • Gateway 网关:操作手册 + 配置
  • 协议:Gateway 网关协议(节点 + 控制平面)。

系统控制

系统控制(launchd/systemd)位于 Gateway 网关主机上。参见 Gateway 网关

连接操作手册

Android 节点应用 ⇄(mDNS/NSD + WebSocket)⇄ Gateway 网关

Android 直接连接到 Gateway 网关 WebSocket(默认 ws://<host>:18789)并使用 Gateway 网关拥有的配对。

前置条件

  • 你可以在”主”机器上运行 Gateway 网关。
  • Android 设备/模拟器可以访问 Gateway 网关 WebSocket:
  • 使用 mDNS/NSD 的同一局域网,
  • 使用 Wide-Area Bonjour / unicast DNS-SD 的同一 Tailscale tailnet(见下文),
  • 手动 Gateway 网关主机/端口(回退方案)
  • 你可以在 Gateway 网关机器上运行 CLI(openclaw)(或通过 SSH)。

1)启动 Gateway 网关

“`bash theme={“theme”:{“light”:”min-light”,”dark”:”min-dark”}}
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 网关机器:

```bash  theme={"theme":{"light":"min-light","dark":"min-dark"}}
dns-sd -B _openclaw-gw._tcp local.

更多调试说明:Bonjour

通过 unicast DNS-SD 的 Tailnet(维也纳 ⇄ 伦敦)发现

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 网关连接活动。
  • 打开设置
  • 发现的 Gateway 网关下,选择你的 Gateway 网关并点击连接
  • 如果 mDNS 被阻止,使用高级 → 手动 Gateway 网关(主机 + 端口)并连接(手动)

首次成功配对后,Android 在启动时自动重连:

  • 手动端点(如果启用),否则
  • 上次发现的 Gateway 网关(尽力而为)。

4)批准配对(CLI)

在 Gateway 网关机器上:

“`bash theme={“theme”:{“light”:”min-light”,”dark”:”min-dark”}}
openclaw nodes pending
openclaw nodes approve


配对详情:[Gateway 网关配对](/gateway/pairing)。

### 5)验证节点已连接

* 通过节点状态:
  ```bash  theme={"theme":{"light":"min-light","dark":"min-dark"}}
  openclaw nodes status
  ```
* 通过 Gateway 网关:
  ```bash  theme={"theme":{"light":"min-light","dark":"min-dark"}}
  openclaw gateway call node.list --params "{}"
  ```

### 6)聊天 + 历史

Android 节点的 Chat 面板使用 Gateway 网关的**主会话键**(`main`),因此历史和回复与 WebChat 和其他客户端共享:

* 历史:`chat.history`
* 发送:`chat.send`
* 推送更新(尽力而为):`chat.subscribe` → `event:"chat"`

### 7)Canvas + 摄像头

#### Gateway 网关 Canvas 主机(推荐用于 web 内容)

如果你想让节点显示智能体可以在磁盘上编辑的真实 HTML/CSS/JS,请将节点指向 Gateway 网关 canvas 主机。

注意:节点使用 `canvasHost.port`(默认 `18793`)上的独立 canvas 主机。

1. 在 Gateway 网关主机上创建 `~/.openclaw/workspace/canvas/index.html`。

2. 将节点导航到它(局域网):

```bash  theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18793/__openclaw__/canvas/"}'

Tailnet(可选):如果两个设备都在 Tailscale 上,使用 MagicDNS 名称或 tailnet IP 而不是 .local,例如 http://<gateway-magicdns>:18793/__openclaw__/canvas/

此服务器将实时重载客户端注入 HTML 并在文件更改时重新加载。
A2UI 主机位于 http://<gateway-host>:18793/__openclaw__/a2ui/

Canvas 命令(仅前台):

  • canvas.evalcanvas.snapshotcanvas.navigate(使用 {"url":""}{"url":"/"} 返回默认脚手架)。canvas.snapshot 返回 { format, base64 }(默认 format="jpeg")。
  • A2UI:canvas.a2ui.pushcanvas.a2ui.resetcanvas.a2ui.pushJSONL 遗留别名)

摄像头命令(仅前台;权限限制):

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

参见 Camera 节点 了解参数和 CLI 助手。