Resumen
location.getes un comando de nodo, invocado mediantenode.invokeuopenclaw nodes location get.- Desactivado de forma predeterminada.
- Las compilaciones de terceros para Android usan un selector: Desactivado / Mientras se usa / Siempre. Las compilaciones de Play siguen siendo Desactivado / Mientras se usa.
- Ubicación precisa es un interruptor independiente.
Por qué un selector (y no solo un interruptor)
Los permisos de ubicación del sistema operativo tienen varios niveles. La ubicación precisa también es una concesión independiente del sistema operativo (iOS 14+ “Precise”, Android “fine” frente a “coarse”). El selector dentro de la app controla el modo solicitado, pero el sistema operativo sigue decidiendo la concesión real.Modelo de configuración
Por dispositivo de nodo:location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
- Seleccionar
whileUsingsolicita permiso en primer plano. - Seleccionar
alwaysen la compilación de terceros para Android primero solicita permiso en primer plano, explica el acceso en segundo plano y luego abre la configuración de la app de Android para la concesión independiente Permitir todo el tiempo. - Las compilaciones de Android Play no declaran permiso de ubicación en segundo plano ni muestran
always. - Si el sistema operativo deniega el nivel solicitado, la app vuelve al nivel concedido más alto y muestra el estado.
Asignación de permisos (node.permissions)
Opcional. El nodo de macOS informalocation mediante el mapa permissions en node.list/node.describe; iOS/Android pueden omitirlo.
Comando: location.get
Se llama mediante node.invoke o el helper de CLI:
--location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Carga útil de respuesta:
LOCATION_DISABLED: el selector está desactivado.LOCATION_PERMISSION_REQUIRED: falta el permiso para el modo solicitado.LOCATION_BACKGROUND_UNAVAILABLE: la app está en segundo plano, pero solo se concedió Mientras se usa.LOCATION_TIMEOUT: no se obtuvo una posición a tiempo.LOCATION_UNAVAILABLE: fallo del sistema o no hay proveedores.
Comportamiento en segundo plano
- Las compilaciones de terceros para Android aceptan
location.geten segundo plano solo cuando el usuario seleccionóAlwaysy Android concedió la ubicación en segundo plano. El servicio persistente de nodo existente agrega el tipo de serviciolocationy muestraLocation: Alwaysmientras está activo. - Las compilaciones de Android Play y el modo
While Usingdenieganlocation.getmientras la app está en segundo plano. - Otras plataformas de nodo pueden diferir.
Integración de modelo/herramientas
- Herramienta del agente: la acción
location_getde la herramientanodes(nodo obligatorio). - CLI:
openclaw nodes location get --node <id>. - Directrices para agentes: llamar solo cuando el usuario haya habilitado la ubicación y entienda el alcance.
Texto de UX (sugerido)
- Desactivado: “El uso compartido de ubicación está deshabilitado.”
- Mientras se usa: “Solo cuando OpenClaw está abierto.”
- Siempre: “Permitir comprobaciones de ubicación solicitadas mientras OpenClaw está en segundo plano.”
- Precisa: “Usar ubicación GPS precisa. Desactívala para compartir una ubicación aproximada.”