自从用了三星的Android手机,经常会有GPSD耗电的烦恼,电量飞流直下,非常不爽。
有人分析说是联通信号的问题,有地域性特征,信号差就会出现;也有人说是因为某些程序需要定位 GPS,比如微信或QQ在后台不断定位,最主要是微信服务号的定位。由于在室内无法定位,所以出现 gpsd持续运行所以耗电,但即使完全关闭移动数据连接以及 GPS 定位,gpsd还是在耗电,一般来说,重新启动可暂时解决 gpsd 耗电问题!但问题会不定时重现。
如果你的手机已ROOT,并安装了Android上的自动化神器Tasker以及插件Secure Settings的话,现在有懒人福音,可用我所说的方法一劳永逸的自动化解决这个问题。
首先,打开tasker,新建条件为“Application”,然后选择需要使用GPS定位的应用,然后输入一个执行场景名,比如我叫startGPSD,然后选择“code”,在弹出窗口中选择“Run Shell”,然后输入命令:
mount -o rw,remount /system
chmod 755 /system/bin/gpsd
mount -o ro,remount /system
exit
并在“Use Root”选项上打勾。接着,继续点击加号,选择“Plugin”,弹出窗口中选择“Secure Settings”,点击右上角的笔形图标,然后选择“ystem+ Action”,选择“GPS”,选择“On”,返回退出即可。
参考图:
同理,在配置列表的右侧长按,添加任务退出条件,其他一样,只是先将GPS条件改为“Off”,然后再将命令改为如下所示:
mount -o rw,remount /system
chmod 644 /system/bin/gpsd
pkill gpsd
mount -o ro,remount /system
exit
参考图:
原理为:
当开启需要GPS定位的应用时,运行脚本将/system/bin/gpsd文件挂载为可读写以便让该应用可调用定位服务,然后自动打开GPS。当该应用退出时,先关闭GPS,然后运行脚本关闭GPSD的权限防止应用调用,然后杀掉GPSD进程,回复系统文件夹的只读权限后退出。