OpenClawSkills
GitHub
プラットフォーム • 5分で読める

Android アプリ

Android ノードアプリ:接続手順 + Canvas / Chat / Camera。

Tutorial.step

サポート概要

- 役割:コンパニオンノードアプリ(Android は Gateway をホストしません)。

- Gateway 必須:はい(macOS、Linux、または Windows (WSL2) で実行)。

- インストール参照:''Getting Started'' + ''Pairing''。

- Gateway reference: ''Runbook'' + ''Configuration''.

- プロトコル:''Gateway protocol''(ノード ↔ 制御プレーン)。

Tutorial.step

システム制御

システムレベル制御(launchd/systemd)は Gateway ホストで行われます。''Gateway'' を参照してください。

Tutorial.step

接続ガイド(Runbook)

Android ノードアプリ ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway

Android connects directly to Gateway WebSocket (default ws://<host>:18789) and uses the pairing mechanism managed by Gateway.

#

Tutorial.step

Prerequisites

- Gateway を「メイン」マシンで実行できます。

- Android デバイス/エミュレータが gateway WebSocket にアクセスできます:

- 同じ LAN、mDNS/NSD で発見、または

- 同じ Tailscale tailnet、Wide-Area Bonjour / unicast DNS-SD 経由(下記参照)、または

- 手動の gateway host/port 入力(フォールバック)

- Gateway マシンで CLI(openclaw)を実行できます(または SSH 経由)。

#

Tutorial.step

1) Gateway を起動

Bash
openclaw gateway --port 18789 --verbose

ログに以下のようなものが表示されることを確認してください:

- listening on ws://0.0.0.0:18789

tailnet 専用デプロイメント(例:Vienna ⇄ London、推奨)の場合、Gateway を tailnet IP にバインドします:

- Gateway ホストの ~/.openclaw/openclaw.json で ~/.openclaw/openclaw.json を設定します。

- Gateway / macOS メニューバーアプリを再起動します。

#

Tutorial.step

2) 発見を検証(オプション)

Gateway マシンで:

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

詳細なデバッグ情報については、''Bonjour'' を参照してください。

##

Tutorial.step

Tailnet (Vienna ⇄ London) unicast DNS-SD 経由の発見

Android の NSD/mDNS 発見はネットワークを越えられません。Android ノードと gateway が同じネットワークにないが、Tailscale 経由で接続されている場合、Wide-Area Bonjour / unicast DNS-SD を使用します:

1. Gateway ホストで DNS-SD zone を設定します(例:openclaw.internal.)し、_openclaw-gw._tcp レコードを公開します。

2. Tailscale でそのドメインのスプリット DNS を設定し、DNS サーバーを指します。

詳細と CoreDNS の例については、''Bonjour'' を参照してください。

#

Tutorial.step

3) Android から接続

Android アプリで:

- アプリは フォアグラウンドサービス(永続的な通知)経由で gateway との接続を維持します。

- Settings を開きます。

- Discovered Gateways で gateway を選択し、Connect をタップします。

- mDNS がブロックされている場合、Advanced → Manual Gateway(host + port)を使用し、Connect (Manual) をタップします。

初期ペアリングが成功した後、Android は起動時に自動的に再接続を試みます:

- 手動エンドポイントが有効な場合、手動エンドポイントを優先します;それ以外の場合

- 最後に発見された gateway に再接続を試みます(ベストエフォート)。

#

Tutorial.step

4) ペアリングを承認(CLI)

Gateway マシンで:

Bash
openclaw nodes pending
openclaw nodes approve <requestId>

ペアリングの詳細:''/gateway/pairing''。

#

Tutorial.step

5) ノードが接続されていることを確認

- ノードステータス:

- Via Gateway:

PlatformsAndroidPage step 10: P3

Tutorial.step

6) Chat と履歴同期

Android ノードの Chat ページは gateway の プライマリセッションキー(main)を使用するため、チャット履歴と返信は WebChat などのクライアントと共有されます:

- History: chat.history

- Send: chat.send

- プッシュ更新(ベストエフォート):chat.subscribe → event:"chat"

#

Tutorial.step

7) Canvas + カメラ

##

Tutorial.step

Gateway Canvas Host(Web コンテンツ表示推奨)

ノードで実際の HTML/CSS/JS(Agent がディスク上で編集)を表示したい場合、ノードを Gateway canvas host に接続します。

注意:ノードはポート canvasHost.port(デフォルト 18793)の別の canvas host を使用します。

1. Gateway ホストで ~/.openclaw/workspace/canvas/index.html を作成します。

2. ノードをそれに移動させます(LAN):

Tailnet (optional): If both devices are on Tailscale, use MagicDNS or tailnet IP instead of .local, e.g., http://<gateway-magicdns>:18793/__openclaw__/canvas/.

This service injects a live-reload client into the HTML and auto-refreshes on file changes. A2UI host is at http://<gateway-host>:18793/__openclaw__/a2ui/.

Canvas コマンド(フォアグラウンドのみ):

- 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'' を参照してください。