Standortbefehl (Nodes)
TL;DR
location.getist ein Node-Befehl (übernode.invoke).- Standardmäßig deaktiviert.
- Einstellungen verwenden einen Selektor: Aus / Während der Nutzung / Immer.
- Separater Schalter: Präziser Standort.
Warum ein Selektor (nicht nur ein Schalter)
OS-Berechtigungen sind mehrstufig. Wir können in der App einen Selektor anbieten, aber das OS entscheidet weiterhin über die tatsächliche Erteilung.- iOS/macOS: Benutzer können in Systemdialogen/Einstellungen Während der Nutzung oder Immer wählen. Die App kann eine Hochstufung anfordern, aber das OS kann die Einstellungen verlangen.
- Android: Hintergrund-Standort ist eine separate Berechtigung; ab Android 10+ erfordert sie oft einen Einstellungen-Flow.
- Präziser Standort ist eine separate Erteilung (iOS 14+ „Präzise“, Android „fine“ vs. „coarse“).
Einstellungsmodell
Pro Node-Gerät:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
- Auswahl von
whileUsingfordert die Vordergrund-Berechtigung an. - Auswahl von
alwaysstellt zuerstwhileUsingsicher und fordert dann den Hintergrund an (oder leitet den Benutzer bei Bedarf zu den Einstellungen weiter). - Wenn das OS die angeforderte Stufe verweigert, wird auf die höchste gewährte Stufe zurückgesetzt und ein Status angezeigt.
Berechtigungszuordnung (node.permissions)
Optional. Der macOS-Node meldetlocation über die Berechtigungszuordnung; iOS/Android können dies weglassen.
Befehl: location.get
Aufgerufen über node.invoke.
Parameter (empfohlen):
LOCATION_DISABLED: Selektor ist aus.LOCATION_PERMISSION_REQUIRED: Berechtigung für den angeforderten Modus fehlt.LOCATION_BACKGROUND_UNAVAILABLE: App ist im Hintergrund, aber es ist nur „Während der Nutzung“ erlaubt.LOCATION_TIMEOUT: kein Fix rechtzeitig.LOCATION_UNAVAILABLE: Systemfehler / keine Anbieter.
Hintergrundverhalten (zukünftig)
Ziel: Das Modell kann den Standort auch anfordern, wenn der Node im Hintergrund ist, jedoch nur wenn:- Der Benutzer Immer ausgewählt hat.
- Das OS den Hintergrund-Standort gewährt.
- Die App im Hintergrund für Standort ausgeführt werden darf (iOS-Hintergrundmodus / Android-Foreground-Service oder Sonderfreigabe).
- Gateway sendet einen Push an den Node (stiller Push oder FCM-Daten).
- Der Node wacht kurz auf und fordert den Standort vom Gerät an.
- Der Node leitet die Payload an das Gateway weiter.
- iOS: Immer-Berechtigung + Hintergrund-Standortmodus erforderlich. Stille Pushes können gedrosselt werden; rechnen Sie mit intermittierenden Fehlern.
- Android: Hintergrund-Standort kann einen Foreground-Service erfordern; andernfalls ist mit Ablehnung zu rechnen.
Modell-/Tooling-Integration
- Tool-Oberfläche: Das Werkzeug
nodesfügt die Aktionlocation_gethinzu (Node erforderlich). - CLI:
openclaw nodes location get --node <id>. - Agent-Richtlinien: Nur aufrufen, wenn der Benutzer den Standort aktiviert hat und den Umfang versteht.
UX-Text (vorgeschlagen)
- Aus: „Standortfreigabe ist deaktiviert.“
- Während der Nutzung: „Nur wenn OpenClaw geöffnet ist.“
- Immer: „Hintergrund-Standort erlauben. Erfordert Systemberechtigung.“
- Präzise: „Präzisen GPS-Standort verwenden. Deaktivieren, um einen ungefähren Standort zu teilen.“