Locatie-opdracht (nodes)
TL;DR
location.getis een node-opdracht (vianode.invoke).- Standaard uit.
- Instellingen gebruiken een selector: Uit / Tijdens gebruik / Altijd.
- Aparte schakelaar: Nauwkeurige locatie.
Waarom een selector (niet alleen een schakelaar)
OS-permissies zijn meerlagig. We kunnen in de app een selector aanbieden, maar het OS bepaalt nog steeds de daadwerkelijke toekenning.- iOS/macOS: de gebruiker kan Tijdens gebruik of Altijd kiezen in systeemmeldingen/Instellingen. De app kan een upgrade aanvragen, maar het OS kan Instellingen vereisen.
- Android: achtergrondlocatie is een aparte permissie; op Android 10+ vereist dit vaak een Instellingen-stroom.
- Nauwkeurige locatie is een aparte toekenning (iOS 14+ “Nauwkeurig”, Android “fijn” vs “grof”).
Instellingenmodel
Per node-apparaat:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
- Het selecteren van
whileUsingvraagt voorgrondpermissie aan. - Het selecteren van
alwayszorgt eerst voorwhileUsing, en vraagt daarna achtergrondpermissie aan (of stuurt de gebruiker naar Instellingen indien vereist). - Als het OS het aangevraagde niveau weigert, keer terug naar het hoogste toegekende niveau en toon de status.
Permissietoewijzing (node.permissions)
Optioneel. De macOS-node rapporteertlocation via de permissiemap; iOS/Android kunnen dit weglaten.
Opdracht: location.get
Aangeroepen via node.invoke.
Parameters (voorgesteld):
LOCATION_DISABLED: selector staat uit.LOCATION_PERMISSION_REQUIRED: permissie ontbreekt voor de aangevraagde modus.LOCATION_BACKGROUND_UNAVAILABLE: app staat op de achtergrond maar alleen Tijdens gebruik is toegestaan.LOCATION_TIMEOUT: geen fix binnen de tijd.LOCATION_UNAVAILABLE: systeemfout / geen providers.
Achtergrondgedrag (toekomst)
Doel: het model kan locatie opvragen zelfs wanneer de node op de achtergrond staat, maar alleen wanneer:- De gebruiker Altijd heeft geselecteerd.
- Het OS achtergrondlocatie toekent.
- De app toestemming heeft om op de achtergrond te draaien voor locatie (iOS-achtergrondmodus / Android-foregroundservice of speciale toelating).
- De Gateway stuurt een push naar de node (stille push of FCM-data).
- De node wordt kort gewekt en vraagt locatie op bij het apparaat.
- De node stuurt de payload door naar de Gateway.
- iOS: Altijd-permissie + achtergrondlocatiemodus vereist. Stille push kan worden gethrottled; verwacht intermittente mislukkingen.
- Android: achtergrondlocatie kan een foregroundservice vereisen; anders is weigering te verwachten.
Model-/toolingintegratie
- Tool-oppervlak: de
nodestool voegt delocation_get-actie toe (node vereist). - CLI:
openclaw nodes location get --node <id>. - Agent-richtlijnen: alleen aanroepen wanneer de gebruiker locatie heeft ingeschakeld en de reikwijdte begrijpt.
UX-tekst (voorgesteld)
- Uit: “Locatiedeling is uitgeschakeld.”
- Tijdens gebruik: “Alleen wanneer OpenClaw open is.”
- Altijd: “Achtergrondlocatie toestaan. Vereist systeempermissie.”
- Nauwkeurig: “Gebruik nauwkeurige GPS-locatie. Schakel uit om een benaderende locatie te delen.”