Platskommando (noder)
TL;DR
location.getär ett nodkommando (vianode.invoke).- Avstängt som standard.
- Inställningar använder en väljare: Av / Vid användning / Alltid.
- Separat reglage: Exakt plats.
Varför en väljare (inte bara en strömbrytare)
OS-behörigheter är flera nivåer. Vi kan exponera en väljare i appen, men OS bestämmer fortfarande själva bidraget.- iOS/macOS: användaren kan välja Under Användning eller alltid i systemuppmaningar/inställningar. Appen kan begära uppgradering, men OS kan kräva inställningar.
- Android: bakgrundsplats är en separat behörighet; på Android 10+ kräver den ofta ett Inställningsflöde.
- Exakt plats är en separat tilldelning (iOS 14+ ”Exakt”, Android ”fine” vs ”coarse”).
Inställningsmodell
Per nodenhet:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
- Val av
whileUsingbegär behörighet i förgrunden. - Val av
alwayssäkerställer förstwhileUsing, begär sedan bakgrund (eller skickar användaren till Inställningar om det krävs). - Om OS nekar begärd nivå, återgå till högsta beviljade nivå och visa status.
Behörighetsmappning (node.permissions)
Valfritt. macOS nod rapporterlocation via behörighetskartan; iOS/Android kan utelämna det.
Kommando: location.get
Anropas via node.invoke.
Parametrar (föreslagna):
LOCATION_DISABLED: väljaren är av.LOCATION_PERMISSION_REQUIRED: behörighet saknas för begärt läge.LOCATION_BACKGROUND_UNAVAILABLE: appen är i bakgrunden men endast Vid användning tillåts.LOCATION_TIMEOUT: ingen fix i tid.LOCATION_UNAVAILABLE: systemfel / inga leverantörer.
Bakgrundsbeteende (framtida)
Mål: modellen kan begära plats även när noden är i bakgrunden, men endast när:- Användaren har valt Alltid.
- OS beviljar bakgrundsplats.
- Appen tillåts köra i bakgrunden för plats (iOS bakgrundsläge / Android foreground service eller särskilt tillstånd).
- Gateway skickar en push till noden (tyst push eller FCM-data).
- Noden vaknar kort och begär plats från enheten.
- Noden vidarebefordrar payload till Gateway.
- iOS: Alltid behörighet + bakgrundsplats krävs. Tyst tryck kan strypas, förvänta intermittent misslyckanden.
- Android: bakgrundsplats kan kräva en foreground service; annars kan man förvänta sig nekande.
Modell-/verktygsintegration
- Verktygsyta:
nodes-verktyget lägger till åtgärdenlocation_get(nod krävs). - CLI:
openclaw nodes location get --node <id>. - Agentriktlinjer: anropa endast när användaren har aktiverat plats och förstår omfattningen.
UX-copy (föreslaget)
- Av: ”Platsdelning är inaktiverad.”
- Vid användning: ”Endast när OpenClaw är öppet.”
- Alltid: “Tillåt bakgrundsplats. Kräver systembehörighet.”
- Precise: ”Använd exakt GPS-position. Växla av för att dela ungefärlig plats. ”