Nodes and media
Команда местоположения
Кратко
location.get— команда узла (черезnode.invoke).- По умолчанию отключена.
- В настройках Android-приложения используется селектор: Отключено / При использовании.
- Отдельный переключатель: Точная геолокация.
Почему селектор (а не просто переключатель)
Разрешения ОС имеют несколько уровней. Мы можем показывать селектор внутри приложения, но фактическое разрешение всё равно определяет ОС.
- iOS/macOS могут показывать При использовании или Всегда в системных запросах/настройках.
- Android-приложение сейчас поддерживает только геолокацию на переднем плане.
- Точная геолокация — это отдельное разрешение (iOS 14+ «Точная», Android «точная» и «приблизительная»).
Селектор в UI управляет запрашиваемым нами режимом; фактическое разрешение хранится в настройках ОС.
Модель настроек
Для каждого устройства-узла:
location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
Поведение UI:
- Выбор
whileUsingзапрашивает разрешение на геолокацию на переднем плане. - Если ОС отклоняет запрошенный уровень, вернуться к максимальному выданному уровню и показать статус.
Сопоставление разрешений (node.permissions)
Необязательно. Узел macOS сообщает location через карту разрешений; iOS/Android могут не включать его.
Команда: location.get
Вызывается через node.invoke.
Параметры (рекомендуемые):
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}Полезная нагрузка ответа:
{ "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"}Ошибки (стабильные коды):
LOCATION_DISABLED: селектор отключён.LOCATION_PERMISSION_REQUIRED: отсутствует разрешение для запрошенного режима.LOCATION_BACKGROUND_UNAVAILABLE: приложение находится в фоне, но разрешён только режим «При использовании».LOCATION_TIMEOUT: не удалось получить координаты вовремя.LOCATION_UNAVAILABLE: системный сбой / нет поставщиков данных.
Поведение в фоне
- Android-приложение отклоняет
location.get, когда находится в фоне. - Держите OpenClaw открытым при запросе геолокации на Android.
- Другие платформы узлов могут отличаться.
Интеграция с моделью/инструментами
- Поверхность инструмента: инструмент
nodesдобавляет действиеlocation_get(узел обязателен). - CLI:
openclaw nodes location get --node <id>. - Рекомендации для агента: вызывать только если пользователь включил геолокацию и понимает область действия.
Текст UX (рекомендуемый)
- Отключено: «Передача геолокации отключена.»
- При использовании: «Только когда OpenClaw открыт.»
- Точная: «Использовать точную GPS-геолокацию. Отключите этот параметр, чтобы передавать приблизительную геолокацию.»
Связанное
Was this useful?