Nodes and media
Standortbefehl
Kurzfassung
location.getist ein Node-Befehl, der übernode.invokeoderopenclaw nodes location getaufgerufen wird.- Standardmäßig deaktiviert.
- Android-Builds von Drittanbietern verwenden eine Auswahl: Aus / Während der Nutzung / Immer. Play-Builds bieten weiterhin nur Aus / Während der Nutzung.
- Der genaue Standort wird über einen separaten Schalter aktiviert.
Warum eine Auswahl (und nicht nur ein Schalter)
Die Standortberechtigungen des Betriebssystems haben mehrere Stufen. Der genaue Standort ist ebenfalls eine separate Betriebssystemberechtigung (ab iOS 14 „Genauer Standort“, unter Android „genau“ gegenüber „ungefähr“). Die Auswahl in der App legt den angeforderten Modus fest, aber das Betriebssystem entscheidet weiterhin über die tatsächlich erteilte Berechtigung.
Einstellungsmodell
Pro Node-Gerät:
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
Verhalten der Benutzeroberfläche:
- Bei Auswahl von
whileUsingwird die Berechtigung für die Nutzung im Vordergrund angefordert. - Bei Auswahl von
alwaysfordert der Android-Build eines Drittanbieters zuerst die Berechtigung für die Nutzung im Vordergrund an, erläutert den Hintergrundzugriff und öffnet anschließend die Android-App-Einstellungen für die separate Berechtigung Allow all the time. - Android-Play-Builds deklarieren keine Berechtigung für den Standortzugriff im Hintergrund und zeigen
alwaysnicht an. - Wenn das Betriebssystem die angeforderte Stufe verweigert, wechselt die App zur höchsten erteilten Stufe zurück und zeigt den Status an.
Zuordnung der Berechtigungen (node.permissions)
Optional. Der macOS-Node meldet location über die permissions-Zuordnung in node.list/node.describe; iOS/Android können diese Angabe auslassen.
Befehl: location.get
Aufruf über node.invoke oder die CLI-Hilfsfunktion:
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000Parameter:
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}Die CLI-Flags werden direkt zugeordnet: --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Antwort-Nutzdaten:
{ "lat": 48.20849, "lon": 16.37208, "accuracyMeters": 12.5, "altitudeMeters": 182.0, "speedMps": 0.0, "headingDeg": 270.0, "timestamp": "2026-01-03T12:34:56.000Z", "isPrecise": true, "source": "gps|wifi|cell|unknown"}Fehler (stabile Codes):
LOCATION_DISABLED: Die Auswahl ist auf „Aus“ eingestellt.LOCATION_PERMISSION_REQUIRED: Die Berechtigung für den angeforderten Modus fehlt.LOCATION_BACKGROUND_UNAVAILABLE: Die App befindet sich im Hintergrund, aber es wurde nur „Während der Nutzung“ gewährt.LOCATION_TIMEOUT: Innerhalb des Zeitlimits konnte kein Standort ermittelt werden.LOCATION_UNAVAILABLE: Systemfehler oder keine Provider verfügbar.
Verhalten im Hintergrund
- Android-Builds von Drittanbietern akzeptieren
location.getim Hintergrund nur, wenn der BenutzerAlwaysausgewählt und Android den Standortzugriff im Hintergrund gewährt hat. Der vorhandene persistente Node-Dienst fügt den Diensttyplocationhinzu und zeigt während der AktivitätLocation: Alwaysan. - Android-Play-Builds und der Modus
While Usingverweigernlocation.get, während sich die App im Hintergrund befindet. - Andere Node-Plattformen können sich anders verhalten.
Modell- und Tooling-Integration
- Agenten-Tool: die Aktion
location_getdes Toolsnodes(Node erforderlich). - CLI:
openclaw nodes location get --node <id>. - Agentenrichtlinien: Nur aufrufen, wenn der Benutzer den Standort aktiviert hat und den Umfang versteht.
UX-Text (Vorschlag)
- Aus: „Die Standortfreigabe ist deaktiviert.“
- Während der Nutzung: „Nur wenn OpenClaw geöffnet ist.“
- Immer: „Angeforderte Standortabfragen zulassen, während OpenClaw im Hintergrund ausgeführt wird.“
- Genau: „Genauen GPS-Standort verwenden. Deaktivieren Sie diese Option, um den ungefähren Standort zu teilen.“