Android 应用(Node�?

支持快照

  • 角色:伴�?node 应用(Android 不托�?Gateway)�?
  • Gateway 必需:是的(�?macOS、Linux 或通过 WSL2 �?Windows 上运行)�?
  • 安装:入门 + 配对�?
  • Gateway:手册 + 配置�?

系统控制

系统控制(launchd/systemd)位�?Gateway 主机上。请参阅 Gateway�?

连接手册

Android node 应用 ⇄(mDNS/NSD + WebSocket)⇄ Gateway

Android 直接连接�?Gateway WebSocket(默�?ws://<host>:18789)并使用 Gateway 所有的配对�?

前置条件

  • 你可以在”�?机器上运�?Gateway�?
  • Android 设备/模拟器可以到�?Gateway WebSocket�?
    • 同一局域网使用 mDNS/NSD�?或�?
    • 同一 Tailscale tailnet 使用广域�?Bonjour / 单播 DNS-SD(见下文),*或�?
    • 手动 Gateway 主机/端口(回退�?
  • 你可以在 Gateway 机器上运�?CLI(openclaw)(或通过 SSH)�?

1) 启动 Gateway

openclaw gateway --port 18789 --verbose

在日志中确认你看到类似:

  • listening on ws://0.0.0.0:18789

对于�?tailnet 设置(推荐用�?Vienna �?London),�?Gateway 绑定�?tailnet IP�?

  • �?Gateway 主机上的 ~/.openclaw/openclaw.json 中设�?gateway.bind: "tailnet"�?
  • 重新启动 Gateway / macOS 菜单栏应用�?

2) 验证发现(可选)

�?Gateway 机器�?

dns-sd -B _openclaw-gw._tcp local.

更多调试说明:Bonjour�?

Tailnet(Vienna �?London)通过单播 DNS-SD 发现

Android NSD/mDNS 发现不会跨网络。如果你�?Android node �?Gateway 在不同网络上但通过 Tailscale 连接,请改用广域�?Bonjour / 单播 DNS-SD�?

  1. �?Gateway 主机上设�?DNS-SD 区域(示�?openclaw.internal.)并发布 _openclaw-gw._tcp 记录�?
  2. 为你选择的域配置 Tailscale 分割 DNS 指向�?DNS 服务器�?

详细信息和示�?CoreDNS 配置:Bonjour�?

3) �?Android 连接

�?Android 应用中:

  • 应用通过前台服务(持久通知)保持其 Gateway 连接�?
  • 打开设置�?
  • �?发现�?Gateways* 下,选择你的 Gateway 并点�?连接*�?
  • 如果 mDNS 被阻止,使用高级 �?手动 Gateway(主�?+ 端口)并连接(手动)�?

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

  • 手动端点(如果启用),否�?
  • 最后发现的 Gateway(尽最大努力)�?

4) 批准配对(CLI�?

�?Gateway 机器上:

openclaw nodes pending
openclaw nodes approve <requestId>

配对详情:Gateway 配对�?

5) 验证 node 已连�?

通过 nodes 状态:

openclaw nodes status

通过 Gateway�?

openclaw gateway call node.list --params "{}"

6) 聊天 + 历史

Android node 的聊天页面使�?Gateway �?主会话密�?main),因此历史和回复与 WebChat 和其他客户端共享�?

  • 历史:chat.history
  • 发送:chat.send
  • 推送更新(尽最大努力):chat.subscribe �?event:"chat"

7) 画布 + 相机

Gateway Canvas 主机(推荐用于网页内容)

如果你希�?node 显示真实�?HTML/CSS/JS 且智能体可以在磁盘上编辑,请�?node 指向 Gateway canvas 主机�?

注意:nodes �?Gateway HTTP 服务器加载画布(�?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 主机位于 http://<gateway-host>:18789/__openclaw__/a2ui/�?

画布命令(仅前台):

  • 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�?

有关参数�?CLI 辅助工具,请参阅 Camera node�?