Hoppa till huvudinnehåll

Android-app (Node)

Supportöversikt

Systemkontroll

Systemkontroll (launchd/systemd) bor på Gateway-värden. Se Gateway.

Anslutningsrunbook

Android-nodapp ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android ansluter direkt till Gateway WebSocket (standard ws://<host>:18789) och använder parkoppling som ägs av Gateway.

Förutsättningar

  • Du kan köra Gateway på ”master”-maskinen.
  • Android-enhet/emulator kan nå gatewayns WebSocket:
    • Samma LAN med mDNS/NSD, eller
    • Samma Tailscale-tailnet med Wide-Area Bonjour / unicast DNS-SD (se nedan), eller
    • Manuell gateway-värd/port (reserv)
  • Du kan köra CLI (openclaw) på gateway-maskinen (eller via SSH).

1. Starta Gateway

openclaw gateway --port 18789 --verbose
Bekräfta i loggarna att du ser något i stil med:
  • listening on ws://0.0.0.0:18789
För installationer som endast använder tailnet (rekommenderat för Wien ⇄ London), bind gatewayn till tailnet-IP:n:
  • Sätt gateway.bind: "tailnet" i ~/.openclaw/openclaw.json på gateway-värden.
  • Starta om Gateway / macOS-menyradsappen.

2. Verifiera upptäckt (valfritt)

Från gateway-maskinen:
dns-sd -B _openclaw-gw._tcp local.
Fler felsökningsanteckningar: Bonjour.

Tailnet-upptäckt (Wien ⇄ London) via unicast DNS-SD

Android NSD/mDNS upptäckten kommer inte korsa nätverk. Om din Android-nod och gateway är på olika nätverk men ansluten via Tailscale, använd Wide-Area Bonjour / unicast DNS-SD istället:
  1. Sätt upp en DNS-SD-zon (exempel openclaw.internal.) på gateway-värden och publicera _openclaw-gw._tcp-poster.
  2. Konfigurera Tailscale split DNS för din valda domän som pekar på den DNS-servern.
Detaljer och exempel på CoreDNS-konfig: Bonjour.

3. Anslut från Android

I Android-appen:
  • Appen håller sin gateway-anslutning vid liv via en foreground service (beständig notis).
  • Öppna Inställningar.
  • Under Upptäckta Gateways, välj din gateway och tryck Anslut.
  • Om mDNS blockeras, använd Avancerat → Manuell Gateway (värd + port) och Anslut (Manuell).
Efter den första lyckade parkopplingen återansluter Android automatiskt vid start:
  • Manuell slutpunkt (om aktiverad), annars
  • Den senast upptäckta gatewayn (best effort).

4. Godkänn parkoppling (CLI)

På gateway-maskinen:
openclaw nodes pending
openclaw nodes approve <requestId>
Parkopplingsdetaljer: Gateway-parkoppling.

5. Verifiera att noden är ansluten

  • Via nodstatus:
    openclaw nodes status
    
  • Via Gateway:
    openclaw gateway call node.list --params "{}"
    

6. Chatt + historik

Android-nodens Chatt-vy använder gatewayns primära sessionsnyckel (main), så historik och svar delas med WebChat och andra klienter:
  • Historik: chat.history
  • Skicka: chat.send
  • Push-uppdateringar (best effort): chat.subscribeevent:"chat"

7. Canvas + kamera

Gateway Canvas Host (rekommenderas för webbinnehåll)

Om du vill att noden ska visa riktig HTML/CSS/JS som agenten kan redigera på disk, peka noden mot Gateway canvas host. Obs: noder använder den fristående canvas-värden på canvasHost.port (standard 18793).
  1. Skapa ~/.openclaw/workspace/canvas/index.html på gateway-värden.
  2. Navigera noden till den (LAN):
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18793/__openclaw__/canvas/"}'
Tailnet (valfritt): om båda enheterna är anslutna till Tailscale, använd ett MagicDNS-namn eller tailnet-IP istället för .local, t.ex. http://<gateway-magicdns>:18789/__openclaw__/canvas/. Denna server injicerar en live-reload-klient till HTML och laddar om filändringar. A2UI-värden finns på http://<gateway-host>:18789/__openclaw__/a2ui/. Canvas-kommandon (endast foreground):
  • canvas.eval, canvas.snapshot, canvas.navigate (använd {"url":""} eller {"url":"/"} för att återgå till standardställningen). canvas.snapshot returnerar { format, base64 } (standard format="jpeg").
  • A2UI: canvas.a2ui.push, canvas.a2ui.reset (canvas.a2ui.pushJSONL äldre alias)
Kamerakommandon (endast foreground; behörighetsstyrda):
  • camera.snap (jpg)
  • camera.clip (mp4)
Se Camera node för parametrar och CLI-hjälpmedel.