我试图做尽可能多的研究,但无法找到这个相当简单的问题的答案(想要在我设置SDK和所有内容之前解决这个问题。)我正在考虑开发我的第一个应用程序,我想知道来自BATTERY_STATUS_CHARGING
的BatteryManager
是否只包含get
函数或set
函数。
我不想制作一个应用程序,我可以手动停止手机充电,而无需从充电器上拔下电源(通过USB),所以我想知道这是否真的可行。
不,它在无根设备上是不可能的。它使用Settings.System
和ADB_ENABLED
,但ADB_ENABLED
是一个安全系统设置,不能被应用程序更改。
是的,它可以在root电话上完成。
需要添加权限android.permission.WRITE_SECURE_SETTINGS.
Google Play上的相同类型的应用程序:https://play.google.com/store/apps/details?id=com.jim2&hl=en
我知道这个帖子已经老了,但是发布我的ans无论如何都要到达这里的人。试试这个: -
echo 0 > /sys/class/power_supply/batterycharging_enabled/charging_enabled
遗憾的是,这是不可能的。 Android只有读取电池数据的API。 ADB_ENABLED在这种情况下无济于事,因为它只能通过USB启用调试。
电池充电控制是Android内核和电池IC模块的内部控制。制造商不时会对其进行更改,但是没有root的应用程序无法使用它,也无法通过一些棘手的界面控制IC(集成芯片)模块,这对于几乎所有设备来说实际上都是不同的!
最好的情况是,如果我们幸运的话,sysfs接口可能有助于实现这一点,但同样需要root,并且可能因设备而异。
连接USB时,使用以下命令停止移动/手持设备的充电:
adb shell dumpsys电池组ac 0; dumpsys电池组usb 0;