3.1 KiB
3.1 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Command lokasi untuk node (`location.get`), mode izin, dan perilaku foreground Android | Command Lokasi |
|
Command lokasi (node)
TL;DR
location.getadalah command node (melaluinode.invoke).- Nonaktif secara default.
- Pengaturan app Android menggunakan pemilih: Off / While Using.
- Toggle terpisah: Precise Location.
Mengapa pemilih (bukan hanya sakelar)
Izin OS memiliki beberapa level. Kita dapat menampilkan pemilih di dalam app, tetapi OS tetap menentukan grant yang sebenarnya.
- iOS/macOS dapat menampilkan While Using atau Always di prompt/Pengaturan sistem.
- App Android saat ini hanya mendukung lokasi foreground.
- Lokasi presisi adalah grant terpisah (iOS 14+ “Precise”, Android “fine” vs “coarse”).
Pemilih di UI menentukan mode yang kita minta; grant yang sebenarnya berada di pengaturan OS.
Model pengaturan
Per perangkat node:
location.enabledMode:off | whileUsinglocation.preciseEnabled: bool
Perilaku UI:
- Memilih
whileUsingmeminta izin foreground. - Jika OS menolak level yang diminta, kembalikan ke level tertinggi yang diberikan dan tampilkan status.
Pemetaan izin (node.permissions)
Opsional. Node macOS melaporkan location melalui peta izin; iOS/Android dapat mengabaikannya.
Command: location.get
Dipanggil melalui node.invoke.
Params (disarankan):
{
"timeoutMs": 10000,
"maxAgeMs": 15000,
"desiredAccuracy": "coarse|balanced|precise"
}
Payload respons:
{
"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"
}
Error (kode stabil):
LOCATION_DISABLED: pemilih nonaktif.LOCATION_PERMISSION_REQUIRED: izin untuk mode yang diminta tidak ada.LOCATION_BACKGROUND_UNAVAILABLE: app berada di latar belakang tetapi hanya While Using yang diizinkan.LOCATION_TIMEOUT: tidak ada fix tepat waktu.LOCATION_UNAVAILABLE: kegagalan sistem / tidak ada penyedia.
Perilaku latar belakang
- App Android menolak
location.getsaat berada di latar belakang. - Biarkan OpenClaw tetap terbuka saat meminta lokasi di Android.
- Platform node lain mungkin berbeda.
Integrasi model/tooling
- Permukaan tool: tool
nodesmenambahkan actionlocation_get(node wajib). - CLI:
openclaw nodes location get --node <id>. - Pedoman agen: panggil hanya saat pengguna telah mengaktifkan lokasi dan memahami cakupannya.
Teks UX (disarankan)
- Off: “Berbagi lokasi dinonaktifkan.”
- While Using: “Hanya saat OpenClaw terbuka.”
- Precise: “Gunakan lokasi GPS presisi. Nonaktifkan untuk membagikan lokasi perkiraan.”