问题描述: 每次我在PC和手机之间连接USB线时,电池会自动充电。我想使用ADB协议,但我不想在ADB连接期间为电池充电。是否可以关闭此充电?当然我怎么能这样做?
环境: Android OS 4及更高版本的手机
我只需要提一下我的参考设备在android 5上工作,所以没有/ sys / class / power_supply / battery / force_usb_charging文件
答案 0 :(得分:9)
当心: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,则可以在恢复时更改该值)。
最后,Play商店中的应用程序正是为此而制作的,但我建议获得这样的电流,指示usb-cable并检查它们是否真的按照他们的说法进行,而不仅仅是嘲笑。
答案 1 :(得分:4)
您可以让系统认为它没有使用
加载电池adb shell dumpsys battery unplug
参考这篇好文章: https://stanfy.com/blog/android-shell-part-1-mocking-battery-status/
答案 2 :(得分:2)
可能可以通过(root权限)完成:
/sys/devices/battery.XX/power_supply/battery/hv_charger_set
0 - 禁用USB充电
1 - 启用USB充电
答案 3 :(得分:1)
针对有根设备尝试此操作:
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
答案 4 :(得分:1)
如果android os版本大于6,请使用拔下并重置以恢复原状。
adb shell dumpsys battery unplug
adb shell dumpsys battery reset