手机里各种App动不动就弹出定位请求,不管是导航打车还是查外卖、数步数,谁受得了次次点确认?这不仅费时间,还会把电池给搞没电。要想省电又方便,就得学会把这个开关交给AutoTools自动管理。 先别急着写代码,打开这个工具先把后台给清空。新建一个全局变量,名字就叫gps就行,全小写字母别留空格。以后所有操作都记在这儿,管理起来特别顺手。 这时候复制粘贴一段代码就行了,千万别动它。要是能看懂代码逻辑就更好了:只要前台软件变了(frontPkgChanged=true),就去看看变量里有没有这个软件名(globalVarOf$gps.contains(to)),有就把GPS打开。要是软件被关闭了(pkgKilled=true),同样再检查一下变量里的包名(globalVarOf$gps.contains(pkgName)),要是有就把GPS关了。说白了就是“一启动就开,一退出就关”。 至于怎么触发它,简单得很。把你想控制的App包名(比如com.map.navigation)写进变量gps里保存就行。下一回打开这个软件时系统会自动弹框问你要不要定位;等你退出回到桌面那一刻,GPS硬件就被关掉了。要是要管好几个软件?用英文逗号把多个包名分隔开放进变量里批量联动就行。 玩得更高级点的话,可以给不同类型的软件单独建个变量。像常用的导航、打车、运动软件分别放进gps_navigate、gps_taxi、gps_health这种变量里。再配合手机里的计划器定个时段:早上七点到九点让系统自动启用导航模式;晚上八点到十点改成打车模式;其余时间全都关掉省电又防追踪。 最后再提点注意事项:不要去点那个“始终允许”的按钮,让系统按你的脚本动态申请权限才是正解,这样能大大降低后台唤醒和电量损耗。没事多清理一下变量历史记录,把那些旧的没用的包名删掉别留着。要是想彻底把硬件电源给断掉?在代码里加一句hw.setLocationProviderEnabled(false)就搞定了;想重新启用时改成true就行。 把这些步骤全走一遍之后,以后再也不用盯着屏幕手动确认了。这种感觉就像拿着遥控器在操控一样轻松自如。