Nodes and media
Команда розташування
Коротко
location.get— це команда вузла, яку викликають черезnode.invokeабоopenclaw nodes location get.- Типово вимкнено.
- Сторонні збірки Android використовують перемикач режимів: Вимкнено / Під час використання / Завжди. У збірках Play доступні лише режими Вимкнено / Під час використання.
- Точне місцезнаходження вмикається окремим перемикачем.
Чому перемикач режимів, а не звичайний вимикач
Дозволи ОС на доступ до місцезнаходження мають кілька рівнів. Точне місцезнаходження також надається окремим дозволом ОС (у iOS 14+ — «Precise», в Android — «fine» на противагу «coarse»). Перемикач режимів у застосунку визначає запитуваний режим, але фактичний рівень доступу все одно визначає ОС.
Модель налаштувань
Для кожного пристрою-вузла:
location.enabledMode:off | whileUsing | alwayslocation.preciseEnabled: bool
Поведінка інтерфейсу:
- Вибір
whileUsingзапитує дозвіл на доступ під час використання застосунку. - У сторонній збірці Android вибір
alwaysспочатку запитує дозвіл на доступ під час використання застосунку, пояснює фоновий доступ, а потім відкриває налаштування застосунку Android для надання окремого дозволу Allow all the time. - Збірки Android Play не оголошують дозвіл на фоновий доступ до місцезнаходження та не показують
always. - Якщо ОС відхиляє запитуваний рівень, застосунок повертається до найвищого наданого рівня та показує стан.
Відображення дозволів (node.permissions)
Необов’язково. Вузол macOS повідомляє про location через мапу permissions у node.list/node.describe; iOS/Android можуть не надавати ці дані.
Команда: location.get
Викликається через node.invoke або допоміжну команду CLI:
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000Параметри:
{ "timeoutMs": 10000, "maxAgeMs": 15000, "desiredAccuracy": "coarse|balanced|precise"}Прапорці CLI відображаються безпосередньо: --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.
Корисне навантаження відповіді:
{ "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, лише якщо користувач вибравAlways, а Android надав доступ до місцезнаходження у фоновому режимі. Наявна постійна служба вузла додає тип службиlocationі під час роботи показуєLocation: Always. - Збірки Android Play і режим
While Usingвідхиляютьlocation.get, коли застосунок працює у фоновому режимі. - На інших платформах вузлів поведінка може відрізнятися.
Інтеграція з моделлю та інструментами
- Інструмент агента: дія
location_getінструментаnodes(потрібно вказати вузол). - CLI:
openclaw nodes location get --node <id>. - Настанови для агента: викликати лише тоді, коли користувач увімкнув доступ до місцезнаходження та розуміє його обсяг.
Тексти інтерфейсу (рекомендовані)
- Вимкнено: «Надання даних про місцезнаходження вимкнено».
- Під час використання: «Лише коли OpenClaw відкрито».
- Завжди: «Дозволити запитувані перевірки місцезнаходження, коли OpenClaw працює у фоновому режимі».
- Точне: «Використовувати точне місцезнаходження за GPS. Вимкніть, щоб надавати приблизне місцезнаходження».