Nodes and media
Команда місцезнаходження
Коротко
location.get— це команда Node (черезnode.invoke).- Типово вимкнено.
- Налаштування застосунку Android використовують селектор: Вимкнено / Під час використання.
- Окремий перемикач: Точна геолокація.
Чому селектор (а не просто перемикач)
Дозволи ОС мають кілька рівнів. Ми можемо показати селектор у застосунку, але фактичний дозвіл усе одно визначає ОС.
- iOS/macOS можуть показувати Під час використання або Завжди в системних запитах/Налаштуваннях.
- Застосунок Android наразі підтримує лише геолокацію на передньому плані.
- Точна геолокація є окремим дозволом (iOS 14+ «Точна», Android «fine» проти «coarse»).
Селектор в UI задає режим, який ми запитуємо; фактичний дозвіл зберігається в налаштуваннях ОС.
Модель налаштувань
Для кожного пристрою Node:
location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
Поведінка UI:
- Вибір
whileUsingзапитує дозвіл на геолокацію на передньому плані. - Якщо ОС відхиляє запитаний рівень, повернутися до найвищого наданого рівня та показати стан.
Зіставлення дозволів (node.permissions)
Необов’язково. Node 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.
- Інші платформи Node можуть відрізнятися.
Інтеграція з моделлю/інструментами
- Поверхня інструмента: інструмент
nodesдодає діюlocation_get(потрібен Node). - CLI:
openclaw nodes location get --node <id>. - Настанови для агента: викликати лише тоді, коли користувач увімкнув геолокацію та розуміє обсяг.
Текст UX (рекомендовано)
- Вимкнено: «Передавання геолокації вимкнено.»
- Під час використання: «Лише коли OpenClaw відкрито.»
- Точна: «Використовувати точну GPS-геолокацію. Вимкніть перемикач, щоб ділитися приблизною геолокацією.»