Android 应用(Node�?
支持快照
- 角色:伴�?node 应用(Android 不托�?Gateway)�?
- Gateway 必需:是的(�?macOS、Linux 或通过 WSL2 �?Windows 上运行)�?
- 安装:入门 + 配对�?
- Gateway:手册 + 配置�?
- 协议:Gateway 协议(nodes + 控制平面)�?
系统控制
系统控制(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�?
- �?Gateway 主机上设�?DNS-SD 区域(示�?
openclaw.internal.)并发布_openclaw-gw._tcp记录�? - 为你选择的域配置 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)�?
-
�?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 主机位于 http://<gateway-host>:18789/__openclaw__/a2ui/�?
画布命令(仅前台):
canvas.eval、canvas.snapshot、canvas.navigate(使�?{"url":""}�?{"url":"/"}返回默认脚手架)。canvas.snapshot返回{ format, base64 }(默�?format="jpeg")�?- A2UI:
canvas.a2ui.push、canvas.a2ui.reset(canvas.a2ui.pushJSONL旧别名)
相机命令(仅前台;权限限制)�?
camera.snap(jpg�?camera.clip(mp4�?
有关参数�?CLI 辅助工具,请参阅 Camera node�?