Tasker 位置上下文详解 地理围栏 GPS 与网络定位 耗电策略
什么是位置上下文
位置上下文(Location Context)让 Tasker 检测你是否在指定的地理区域内。当你进入该区域时,Profile 激活并执行 Enter Task;离开时执行 Exit Task。
位置上下文是"到家自动"、"到公司自动"、"进车载自动"这类场景的核心依赖。
两种定位精度
创建位置上下文时,Tasker 会要求你选择一个地点并指定精度范围(半径)。有两种定位方式:
| 方式 | 精度 | 耗电 | 说明 |
|---|---|---|---|
| GPS | 5-50 米 | 高 | 户外可靠,室内信号差 |
| 网络定位(Wi-Fi + 基站) | 50-500 米 | 中 | 室内可用,城市中表现好 |
| 被动监听(Passive) | 500 米+ | 低 | 只在其他 App 请求定位时顺便更新,可能延迟很大 |
位置选择方式
- 地图选择:Tasker 内置简易地图,手动选点 + 设置半径
- 自动获取:基于当前 GPS 位置一键添加
- 地址搜索:输入地名或地址自动解析
经典用法
到家自动解锁 + 打开 Wi-Fi
Location Context:家的坐标,半径 50 米
→ Enter Task:关闭锁屏密码(Smart Lock 或 Tasker 自动解锁)、开启 Wi-Fi、打开客厅灯光(配合智能家居)→ Exit Task:重新锁定、关闭 Wi-Fi
公司范围内自动静音
Location Context:公司坐标,半径 100 米
AND
Time Context:工作日 09:00-18:00
→ Enter:静音 + 勿扰→ Exit:恢复
车载蓝牙 + 位置双重验证
位置本身可能不准,但位置 + 蓝牙 SSID 组合可以更可靠:
State Context:蓝牙连接到车载设备
AND
Location Context:家或公司以外
这样就避免了"在车库里但没开车"的误触发。
位置上下文的耗电问题
位置是 Tasker 所有 Context 中最耗电的。正确的姿势是:
1. 尽量加 AND 其他 Context
Time Context:07:00 - 23:00
AND
Location Context:家(高精度 GPS)
这样 Tasker 只有在时间窗口内才会持续检测 GPS,其他时间用网络定位粗略判断。
2. 使用被动模式(Passive)如果你只需要"大致在不在家"(500 米精度就够),选被动模式最省电——Tasker 不会主动请求 GPS,只在其他 App 请求定位时顺便拿到坐标。
3. 设置合理的半径 50 米半径需要高精度 GPS 持续追踪;200 米半径用网络定位就够了。半径越大,耗电越低。
位置检测的"抖动"问题
GPS 和网络定位都有误差。如果你的地理围栏太小(比如 20 米),可能出现在边界附近来回抖动、Profile 反复激活/退出的情况。
防抖方案
Tasker 没有内置位置防抖,但可以用以下变通:
- 半径设置大一些(100-200 米),减少边界抖动
- 叠加 State Context:比如同时检测 Wi-Fi SSID,只有位置 且 SSID 匹配才算
- Exit Task 里加延时:用 Wait 动作延迟 Exit 执行,离开区域后等 2 分钟再退出
高级方案:AutoLocation 插件
如果 Tasker 内置的位置能力不够,可以安装 joaoapps 自家的 AutoLocation 插件,提供:
- 地理围栏带进入/离开分别触发(Tasker 内置 Location Context 没有这个)
- 基于 Cell Tower 的粗略检测(超低功耗)
- 位置历史 / 行程记录
- 速度检测(开车 vs 走路 vs 静止)
详见 AutoLocation 插件。