Nodes and media
Comando di posizione
In breve
location.getè un comando del nodo (tramitenode.invoke).- Disattivato per impostazione predefinita.
- Le impostazioni dell'app Android usano un selettore: Disattivato / Durante l'uso.
- Interruttore separato: Posizione precisa.
Perché un selettore (non solo un interruttore)
Le autorizzazioni del sistema operativo hanno più livelli. Possiamo esporre un selettore nell'app, ma il sistema operativo decide comunque l'autorizzazione effettiva.
- iOS/macOS possono mostrare Durante l'uso o Sempre nei prompt di sistema/nelle Impostazioni.
- L'app Android attualmente supporta solo la posizione in primo piano.
- La posizione precisa è un'autorizzazione separata (iOS 14+ "Precise", Android "fine" vs "coarse").
Il selettore nell'UI determina la modalità richiesta; l'autorizzazione effettiva risiede nelle impostazioni del sistema operativo.
Modello delle impostazioni
Per dispositivo nodo:
location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
Comportamento dell'UI:
- Selezionare
whileUsingrichiede l'autorizzazione in primo piano. - Se il sistema operativo nega il livello richiesto, ripristina il livello più alto concesso e mostra lo stato.
Mappatura delle autorizzazioni (node.permissions)
Facoltativa. Il nodo macOS segnala location tramite la mappa delle autorizzazioni; iOS/Android possono ometterla.
Comando: location.get
Chiamato tramite node.invoke.
Parametri (suggeriti):
{
"timeoutMs": 10000,
"maxAgeMs": 15000,
"desiredAccuracy": "coarse|balanced|precise"
}
Payload di risposta:
{
"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"
}
Errori (codici stabili):
LOCATION_DISABLED: il selettore è disattivato.LOCATION_PERMISSION_REQUIRED: autorizzazione mancante per la modalità richiesta.LOCATION_BACKGROUND_UNAVAILABLE: l'app è in background ma è consentito solo Durante l'uso.LOCATION_TIMEOUT: nessun fix in tempo.LOCATION_UNAVAILABLE: errore di sistema / nessun provider.
Comportamento in background
- L'app Android nega
location.getquando è in background. - Tieni OpenClaw aperto quando richiedi la posizione su Android.
- Altre piattaforme nodo possono comportarsi diversamente.
Integrazione con modello/strumenti
- Superficie dello strumento: lo strumento
nodesaggiunge l'azionelocation_get(nodo obbligatorio). - CLI:
openclaw nodes location get --node <id>. - Linee guida per gli agenti: chiamare solo quando l'utente ha abilitato la posizione e comprende l'ambito.
Testo UX (suggerito)
- Disattivato: "La condivisione della posizione è disabilitata."
- Durante l'uso: "Solo quando OpenClaw è aperto."
- Precisa: "Usa la posizione GPS precisa. Disattiva l'opzione per condividere la posizione approssimativa."