Nodes and media

Команда розташування

Коротко

  • location.get — це команда вузла, яку викликають через node.invoke або openclaw nodes location get.
  • Типово вимкнено.
  • Сторонні збірки Android використовують перемикач режимів: Вимкнено / Під час використання / Завжди. У збірках Play доступні лише режими Вимкнено / Під час використання.
  • Точне місцезнаходження вмикається окремим перемикачем.

Чому перемикач режимів, а не звичайний вимикач

Дозволи ОС на доступ до місцезнаходження мають кілька рівнів. Точне місцезнаходження також надається окремим дозволом ОС (у iOS 14+ — «Precise», в Android — «fine» на противагу «coarse»). Перемикач режимів у застосунку визначає запитуваний режим, але фактичний рівень доступу все одно визначає ОС.

Модель налаштувань

Для кожного пристрою-вузла:

  • location.enabledMode: off | whileUsing | always
  • location.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:

bash
openclaw nodes location get --node <idOrNameOrIp>openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000

Параметри:

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

Прапорці CLI відображаються безпосередньо: --location-timeout -> timeoutMs, --max-age -> maxAgeMs, --accuracy -> desiredAccuracy.

Корисне навантаження відповіді:

json
{  "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. Вимкніть, щоб надавати приблизне місцезнаходження».

Пов’язані матеріали

Was this useful?
On this page

On this page