In breve
location.getè un comando del Node, richiamato tramitenode.invokeoopenclaw nodes location get.- Disattivato per impostazione predefinita.
- Le build Android di terze parti usano un selettore: Disattivato / Durante l’uso / Sempre. Le build Play mantengono le opzioni Disattivato / Durante l’uso.
- La posizione precisa dispone di un interruttore separato.
Perché un selettore (e non un semplice interruttore)
Le autorizzazioni di localizzazione del sistema operativo prevedono più livelli. Anche la posizione precisa è un’autorizzazione distinta del sistema operativo («Precisa» su iOS 14+, «fine» rispetto ad «approssimativa» su Android). Il selettore nell’app determina la modalità richiesta, ma è comunque il sistema operativo a decidere l’autorizzazione effettivamente concessa.Modello delle impostazioni
Per ciascun dispositivo Node:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
- Selezionando
whileUsingviene richiesta l’autorizzazione in primo piano. - Selezionando
alwaysnella build Android di terze parti, viene prima richiesta l’autorizzazione in primo piano, quindi viene spiegato l’accesso in background e infine vengono aperte le impostazioni dell’app Android per concedere separatamente Allow all the time. - Le build Android Play non dichiarano l’autorizzazione per la localizzazione in background e non mostrano
always. - Se il sistema operativo nega il livello richiesto, l’app ripristina il livello più alto concesso e ne mostra lo stato.
Mappatura delle autorizzazioni (node.permissions)
Facoltativa. Il Node macOS segnalalocation tramite la mappa permissions in node.list/node.describe; iOS e Android potrebbero ometterlo.
Comando: location.get
Richiamato tramite node.invoke o mediante l’utilità CLI:
--location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Payload della risposta:
LOCATION_DISABLED: il selettore è disattivato.LOCATION_PERMISSION_REQUIRED: manca l’autorizzazione per la modalità richiesta.LOCATION_BACKGROUND_UNAVAILABLE: l’app è in background, ma è stata concessa soltanto l’autorizzazione Durante l’uso.LOCATION_TIMEOUT: posizione non acquisita in tempo.LOCATION_UNAVAILABLE: errore di sistema o nessun provider disponibile.
Comportamento in background
- Le build Android di terze parti accettano
location.getin background solo quando è stata selezionata l’opzioneAlwayse Android ha concesso la localizzazione in background. Il servizio Node persistente esistente aggiunge il tipo di serviziolocatione indicaLocation: Alwaysmentre è attivo. - Le build Android Play e la modalità
While Usingneganolocation.getmentre l’app è in background. - Le altre piattaforme Node possono comportarsi diversamente.
Host Node Linux
Il Plugin Node Linux incluso aggiungelocation.get al servizio CLI openclaw node, inclusi gli host headless privi dell’app desktop Linux. La localizzazione è disattivata per impostazione predefinita. Abilitarla nella voce del Plugin, quindi riavviare il servizio Node:
where-am-i (geoclue-2-demo su Debian e Ubuntu). L’utente del servizio Node deve essere autorizzato dai criteri GeoClue dell’host e dall’agente di autorizzazione.
Il Plugin usa where-am-i anziché una sequenza di chiamate busctl. GeoClue associa la creazione del client, le proprietà, l’avvio, gli aggiornamenti e l’arresto a una singola connessione client D-Bus; la demo mantiene unito questo ciclo di vita, mentre i sottoprocessi busctl separati non lo fanno. Non viene aggiunta alcuna dipendenza npm.
Linux mappa coarse, balanced e precise sui livelli di precisione GeoClue 4, 6 e 8. Convalida maxAgeMs rispetto al timestamp restituito. La demo di GeoClue non espone il provider selezionato, quindi source è unknown; isPrecise è true solo quando la precisione indicata è pari o inferiore a 100 metri.
Linux usa gli stessi errori stabili: LOCATION_DISABLED, LOCATION_TIMEOUT e LOCATION_UNAVAILABLE.
Integrazione con modelli e strumenti
- Strumento dell’agente: l’azione
location_getdello strumentonodes(Node richiesto). - CLI:
openclaw nodes location get --node <id>. - Linee guida per l’agente: effettuare la chiamata solo quando l’utente ha abilitato la localizzazione e ne comprende l’ambito.
Testi dell’interfaccia (suggeriti)
- Disattivato: «La condivisione della posizione è disabilitata».
- Durante l’uso: «Solo quando OpenClaw è aperto».
- Sempre: «Consenti i controlli della posizione richiesti mentre OpenClaw è in background».
- Precisa: «Usa la posizione GPS precisa. Disattivare l’opzione per condividere la posizione approssimativa».