如何在ADB连接期间禁用电池充电?

时间:2015-06-09 12:21:16

标签: android usb adb

问题描述: 每次我在PC和手机之间连接USB线时,电池会自动充电。我想使用ADB协议,但我不想在ADB连接期间为电池充电。是否可以关闭此充电?当然我怎么能这样做?

环境: Android OS 4及更高版本的手机

我只需要提一下我的参考设备在android 5上工作,所以没有/ sys / class / power_supply / battery / force_usb_charging文件

5 个答案:

答案 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