Ir al contenido

Comando de ubicación

  • location.get es un comando de nodo (vía node.invoke).
  • Desactivado de forma predeterminada.
  • La configuración de la aplicación de Android utiliza un selector: Desactivado / Mientras se usa.
  • Interruptor separado: Ubicación precisa.

Por qué un selector (y no solo un interruptor)

Sección titulada «Por qué un selector (y no solo un interruptor)»

Los permisos del SO son multinivel. Podemos exponer un selector en la aplicación, pero el SO aún decide la concesión real.

  • iOS/macOS puede exponer Mientras se usa o Siempre en los mensajes del sistema/Configuración.
  • La aplicación de Android actualmente solo admite la ubicación en primer plano.
  • La ubicación precisa es un permiso independiente (iOS 14+ “Precise”, Android “fine” frente a “coarse”).

El selector en la interfaz de usuario impulsa nuestro modo solicitado; la concesión real reside en la configuración del SO.

Por dispositivo de nodo:

  • location.enabledMode: off | whileUsing
  • location.preciseEnabled: bool

Comportamiento de la interfaz de usuario:

  • Seleccionar whileUsing solicita permiso en primer plano.
  • Si el SO deniega el nivel solicitado, volver al nivel más alto concedido y mostrar el estado.

Opcional. El nodo de macOS informa location a través del mapa de permisos; iOS/Android pueden omitirlo.

Llamado a través de node.invoke.

Parámetros (sugeridos):

{
"timeoutMs": 10000,
"maxAgeMs": 15000,
"desiredAccuracy": "coarse|balanced|precise"
}

Respuesta:

{
"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"
}

Errores (códigos estables):

  • LOCATION_DISABLED: el selector está desactivado.
  • LOCATION_PERMISSION_REQUIRED: falta el permiso para el modo solicitado.
  • LOCATION_BACKGROUND_UNAVAILABLE: la aplicación está en segundo plano pero solo se permite Mientras se usa.
  • LOCATION_TIMEOUT: sin solución a tiempo.
  • LOCATION_UNAVAILABLE: fallo del sistema / sin proveedores.
  • La aplicación de Android deniega location.get mientras está en segundo plano.
  • Mantenga OpenClaw abierto al solicitar la ubicación en Android.
  • Otras plataformas de nodos pueden diferir.
  • Superficie de la herramienta: la herramienta nodes añade la acción location_get (se requiere el nodo).
  • CLI: openclaw nodes location get --node <id>.
  • Pautas para el agente: llamar solo cuando el usuario haya habilitado la ubicación y comprenda el alcance.
  • Desactivado: “El uso compartido de la ubicación está desactivado.”
  • Mientras se usa: “Solo cuando OpenClaw está abierto.”
  • Precisa: “Usar la ubicación GPS precisa. Desactivar para compartir la ubicación aproximada.”