问题描述:每次我在PC和手机之间连接USB线时,电池会自动充电。我想使用ADB协议,但我不想在ADB连接期间为电池充电。是否可以关闭此充电?当然我怎么能这样做?
环境:Android OS 4及更高版本的手机
我只需要提一下我的参考设备在android 5上工作,所以没有/ sys / class / power_supply / battery / force_usb_charging文件
请注意:adb shell dumpsys battery unplug
只能MOCKS电池状态。我检查了我的USB电缆上的电流指示器,这并没有改变流动的电流量,因此电池仍在充电。它只会更改应用程序对状态的看法,例如,如果您已配置只能在收费时更新,则Google Play不会开始更新...
将/sys/devices/battery.XX/power_supply/battery/hv_charger_set
等文件的值更改为0确实有效,但每个设备的文件都不同。例如,对于我的带有snapdragon 805的yotaphone 2,有一个文件:/sys/devices/qpnp-charger-14/power_supply/battery/charging_enabled
所以你可以创建一个可以在tasker中使用的脚本(如果你有root):
echo $1 > /sys/devices/qpnp-charger-14/power_supply/battery/charging_enabled
如果你把它写到一个可执行文件/data/setcharging.sh然后你可以调用像/data/setcharging.sh 0
这样的脚本来启用或启用/data/setcharging.sh 1
。
这是有效的,我用我当前的计量usb电缆检查,但它没有显示它在电池状态图标中工作。所以你可以使用这个和adb shell dumpsys battery unplug / reset
的组合来使它看起来更好,但问题是那么像tasker这样的应用程序不知道你是否有交流电源,所以当你设置时你不能为它设置触发器它被拔掉了......
还有一件事,我还测试了它在恢复(twrp)和启动过程中的作用。事实证明,在启动和恢复期间,充电正常。因此,如果您忘记再次打开充电,那么您的设备就不会死了。您始终可以在恢复模式下对其进行充电,然后再次启动并更改该值(如果您的恢复可以访问adb,则可以在恢复时更改该值)。
最后,游戏商店中的应用程序正是为此制作的,但我建议获得这样的电流指示usb-cable并检查它们是否真的按照他们的说法而不仅仅是嘲笑。
您可以让系统认为它没有使用电池加载
adb shell dumpsys电池拔掉
请参阅这篇好文章:https://stanfy.com/blog/android-shell-part-1-mocking-battery-status/
可能它可以通过(root权限)完成:
/sys/devices/battery.XX/power_supply/battery/hv_charger_set
0 - 禁用USB充电
1 - 启用USB充电
尝试使用root设备:
adb shell dumpsys battery set ac 1
adb shell dumpsys battery set usb 1
adb shell dumpsys battery set wireless 1
adb shell dumpsys battery set ac 0
adb shell dumpsys battery set usb 0
adb shell dumpsys battery set wireless 0