公众号有小伙伴翻到几年前的东西,然后问有没有免root查看电量和充电控制的方法。还有小伙伴问代码装x,就简单写一个教程吧。
1、查看电量比较简单,可以使用termux-api:
termux-battery-status
2、需要充电控制就比较麻烦一点,没有root权限,也只能使用adb,安卓11以上支持开启无线调试模式,不需要电脑,就可以实现adb本机。
开启开发者选项,就不用多说了;
开启无线调试;关闭usb调试和网络adb调试。
使用配对码配对,最好分屏操作,设置切换到后台,配对码就失效了。
还是使用termux,安装adb之后,使用adb调试。
#安装adb工具 apt install android-tools #adb配对 adb pair 192.168.0.xxxx:端口 #adb调试本机 adb connect 192.168.0.xxx:端口 #查看是否连接成功 adb devices
adb充电控制,在比较早介绍adb常用命令都说的差不多了。https://zsxwz.com/2021/01/31/安卓adb-shell常用的命令/
#查看电量 adb shell dumpsys battery #断开充电 adb shell dumpsys battery unplug #恢复充电 adb shell dumpsys battery reset
3、自动控制充电,自己可以写一个简单的脚本监控一下电量即可。为了避免耗电,使用crontab,定时几分钟查询一次也可以。
没时间,简单写一个脚本:
小于等于80充电,等于100停止充电。
#!/data/data/com.termux/files/usr/bin/bash var=`adb shell dumpsys battery |grep level|cut -f 2 -d ":"` if [ $var -le 80 ] ;then adb shell dumpsys battery reset elif [ $var -eq 100 ] ; then adb shell dumpsys battery unplug fi
termux定时执行脚本,crontab表达式不会写的,可以参考:https://bbs.zsxwz.com/thread-4054.htm。
#运行termux后台运行 termux-wake-lock apt install cronie crontan -e
测试了一下,adb shell dumpsys battery 命令不能真正控制是否充电,虽然电量显示不变化,但是拔掉之后发现电量依然增加。在 /sys/device/ 的某个子目录下找一个叫 hv_charger_set 或者 charging_enabled 之类的文件,内容改成0可以真正控制充电,不过我这个没root权限没测试。
dumpsys battery 自己测试可以。