如何通过USB以编程方式停止手机充电

时间:2013-04-13 22:27:49

标签: android battery setvalue

我试图做尽可能多的研究,但找不到这个相当简单的问题的答案(想要在我设置SDK和所有内容之前弄清楚这一点。)我在想关于开发我的第一个应用程序,我想知道BATTERY_STATUS_CHARGING中的BatteryManager是仅包含get函数还是set函数。

我不想制作一个应用程序,我可以手动停止手机充电,而无需将其从充电器上拔下(通过USB),所以我想知道这是否真的可行。

5 个答案:

答案 0 :(得分:9)

不,在无根设备上无法实现。它使用Settings.SystemADB_ENABLED,但ADB_ENABLED是安全系统设置,无法由应用程序更改。

是的,可以在root手机上完成。

需要添加权限android.permission.WRITE_SECURE_SETTINGS.

Google Play上的相同类型的应用:https://play.google.com/store/apps/details?id=com.jim2&hl=en

答案 1 :(得分:6)

你可以硬连线:12欧姆串口仍然可以让电话被电脑识别,然后慢慢放电。见附图。microUSB cable plugged into PCB. PCB shows VCC connected to wire via 12Ω resistor, and D-, D+ and GND connected directly to wires. All wires go to cable out of image

答案 2 :(得分:5)

我知道这个帖子已经老了,但是后来发布了我的ans以便有人到达这里。试试这个: -
echo 0 > /sys/class/power_supply/batterycharging_enabled/charging_enabled

答案 3 :(得分:2)

遗憾的是,这是不可能的。 Android只有读取电池数据的API。 ADB_EN​​ABLED在这种情况下无济于事,因为它只能启用USB调试。

电池充电控制是Android内核和电池IC模块的内部控制。制造商不时会对其进行更改,但是没有root的应用程序无法使用它,也无法通过一些棘手的界面控制IC(集成芯片)模块,这对于几乎所有设备来说实际上都是不同的!

充其量只要我们幸运,sysfs接口可能有助于实现这一点,但同样需要root,并且可能因设备而异。

答案 4 :(得分:0)

在连接到USB时,使用以下命令停止为移动设备/手持设备充电:

  

adb shell dumpsys电池组ac 0; dumpsys电池设置为USB 0;