Nodes 导读

location.get 权限不是开关,是三层博弈

先搞清楚:你调的是 node.invoke('location.get'),但真正决定能不能拿到位置的是 OS 权限模型。页面里最关键的是那个选择器——Off / While Using,不是简单的开关。最容易踩的坑:你选了 While Using,系统可能只给一次授权,或者根本不给;Precise Location 是独立开关,iOS 14+ 和 Android 的 fine/coarse 各管各的。

先讲这一页到底在解决什么

location.get 权限不是开关,是三层博弈

先搞清楚:你调的是 node.invoke('location.get'),但真正决定能不能拿到位置的是 OS 权限模型。页面里最关键的是那个选择器——Off / While Using,不是简单的开关。最容易踩的坑:你选了 While Using,系统可能只给一次授权,或者根本不给;Precise Location 是独立开关,iOS 14+ 和 Android 的 fine/coarse 各管各的。

原文共 9 节,先看 TL;DR 路径:/nodes/location-command 查看官方原文

第一站

🧭 官方没用简单开关,而是用“模式选择器”

因为位置权限本来就不是单一开或关。

off

完全不报位置,像把定位芯片盖住。

🚶

whileUsing

只在你正在使用 app 时给位置,比较像“当面借用一下地图”。

🎯

preciseEnabled

这决定给的是精确坐标还是比较模糊的大概区域。

📱

OS 最终拍板

应用能请求,但系统设置才是真正最后盖章的人。

第二站

🪪 UI 里的选择只是“我想申请什么级别”,不等于系统一定答应

所以官方才会强调:选择器驱动请求,实际授予还是看操作系统。

iOS / macOS

系统可能给你 While Using,也可能有更高一档 Always,但最终决定权不在 OpenClaw 手里。

Android

当前更偏前台定位,说明这边管得更紧。

location.get

这就是实际问设备“你现在在哪儿”的命令入口。

🎈 最后记一句

这页的重点不是地图本身,而是权限层级和精度层级。