位置指令(節點)
TL;DR
location.get是節點指令(透過node.invoke)。- 預設關閉。
- Android 應用程式設定使用選擇器:Off / While Using。
- 獨立開關:精確位置。
為什麼使用選擇器(而非單純開關)
OS 權限是多層級的。我們可以在 App 中公開選擇器,但 OS 仍決定實際授予的權限。- iOS/macOS 可能在系統提示/設定中公開 While Using 或 Always。
- Android 應用程式目前僅支援前景位置。
- 精確位置是獨立的授予(iOS 14+「Precise」,Android「fine」vs「coarse」)。
設定模型
各節點裝置:location.enabledMode:off | whileUsinglocation.preciseEnabled:bool
- 選擇
whileUsing請求前景權限。 - 若 OS 拒絕請求的層級,回退至最高授予層級並顯示狀態。
權限對應(node.permissions)
選用。macOS 節點透過權限對應回報location;iOS/Android 可能省略。
指令:location.get
透過 node.invoke 呼叫。
參數(建議):
LOCATION_DISABLED:選擇器已關閉。LOCATION_PERMISSION_REQUIRED:請求模式缺少權限。LOCATION_BACKGROUND_UNAVAILABLE:App 在背景但僅允許 While Using。LOCATION_TIMEOUT:未在時間內取得定位。LOCATION_UNAVAILABLE:系統故障/無提供商。
背景行為
- Android App 在背景時拒絕
location.get。 - 在 Android 上請求位置時請保持 OpenClaw 開啟。
- 其他節點平台行為可能不同。
模型/工具整合
- 工具介面:
nodes工具新增location_get動作(需要節點)。 - CLI:
openclaw nodes location get --node <id>。 - Agent 指導:僅在使用者啟用位置且了解範圍時才呼叫。
UX 文案(建議)
- Off:「位置分享已停用。」
- While Using:「僅在 OpenClaw 開啟時。」
- Precise:「使用精確 GPS 位置。關閉以分享近似位置。」