Nodes and media
Commande de localisation
En bref
location.getest une commande de Node, invoquée vianode.invokeouopenclaw nodes location get.- Désactivée par défaut.
- Les versions Android tierces utilisent un sélecteur : Désactivé / Pendant l’utilisation / Toujours. Les versions Play restent limitées à Désactivé / Pendant l’utilisation.
- La localisation précise dispose d’un bouton distinct.
Pourquoi un sélecteur (et pas seulement un interrupteur)
Les autorisations de localisation du système d’exploitation comportent plusieurs niveaux. La localisation précise est également une autorisation distincte du système d’exploitation (« Precise » à partir d’iOS 14, « fine » et « coarse » sous Android). Le sélecteur de l’application détermine le mode demandé, mais le système d’exploitation décide toujours de l’autorisation effectivement accordée.
Modèle des réglages
Pour chaque appareil Node :
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: booléen
Comportement de l’interface utilisateur :
- La sélection de
whileUsingdemande l’autorisation d’accès au premier plan. - Dans la version Android tierce, la sélection de
alwaysdemande d’abord l’autorisation d’accès au premier plan, explique l’accès en arrière-plan, puis ouvre les réglages Android de l’application afin d’accorder séparément l’autorisation Allow all the time. - Les versions Android Play ne déclarent pas l’autorisation de localisation en arrière-plan et n’affichent pas
always. - Si le système d’exploitation refuse le niveau demandé, l’application revient au niveau le plus élevé accordé et affiche son état.
Correspondance des autorisations (node.permissions)
Facultatif. Le Node macOS indique location dans la table permissions de node.list/node.describe ; iOS et Android peuvent l’omettre.
Commande : location.get
Appelée via node.invoke ou l’utilitaire CLI :
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000Paramètres :
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}Les options de la CLI correspondent directement aux paramètres : --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Charge utile de la réponse :
{ "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"}Erreurs (codes stables) :
LOCATION_DISABLED: le sélecteur est désactivé.LOCATION_PERMISSION_REQUIRED: l’autorisation nécessaire au mode demandé est absente.LOCATION_BACKGROUND_UNAVAILABLE: l’application est en arrière-plan, mais seule l’autorisation Pendant l’utilisation est accordée.LOCATION_TIMEOUT: aucune position obtenue dans le délai imparti.LOCATION_UNAVAILABLE: défaillance du système ou absence de fournisseurs.
Comportement en arrière-plan
- Les versions Android tierces acceptent
location.geten arrière-plan uniquement si l’utilisateur a sélectionnéAlwayset si Android a accordé l’accès à la localisation en arrière-plan. Le service persistant de Node existant ajoute le type de servicelocationet indiqueLocation: Alwayslorsqu’il est actif. - Les versions Android Play et le mode
While Usingrefusentlocation.getlorsque l’application est en arrière-plan. - Les autres plateformes de Node peuvent se comporter différemment.
Intégration aux modèles et aux outils
- Outil de l’agent : l’action
location_getde l’outilnodes(Node requis). - CLI :
openclaw nodes location get --node <id>. - Consignes pour l’agent : effectuer l’appel uniquement lorsque l’utilisateur a activé la localisation et en comprend la portée.
Texte de l’interface utilisateur (suggestion)
- Désactivé : « Le partage de la localisation est désactivé. »
- Pendant l’utilisation : « Uniquement lorsque OpenClaw est ouvert. »
- Toujours : « Autoriser les vérifications de localisation demandées lorsqu’OpenClaw est en arrière-plan. »
- Précise : « Utiliser la localisation GPS précise. Désactivez cette option pour partager une localisation approximative. »