14

我试图做尽可能多的研究,但找不到这个相当简单的问题的答案(想在我设置 SDK 和所有东西之前弄清楚这一点)。我正在考虑开发我的第一个应用程序,我想知道BATTERY_STATUS_CHARGINGfrom是否BatteryManager仅包含一个get功能或还包含一个set功能。

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

4

5 回答 5

9

不,这在无根设备上是不可能的。它与 一起使用Settings.SystemADB_ENABLED但它ADB_ENABLED是一个不能被应用程序更改的安全系统设置。

是的,它可以在有根手机上完成。

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

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

于 2013-04-13T23:13:59.823 回答
7

你可以硬连线它:12欧姆的串行仍然可以让手机被电脑识别,但会慢慢放电。见附图。插入 PCB 的 microUSB 电缆。 PCB 显示 VCC 通过 12Ω 电阻连接到电线,而 D-、D+ 和 GND 直接连接到电线。 所有电线都连接到电缆图像中

于 2015-11-12T15:13:29.673 回答
5

我知道这个帖子很旧,但无论如何都会为稍后到达这里的人发布我的答案。试试这个: -
echo 0 > /sys/class/power_supply/batterycharging_enabled/charging_enabled

于 2017-06-01T22:30:50.940 回答
3

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

电池充电控制在 Android 内核和电池 IC 模块内部。制造商确实会不时更改它,但它不适用于没有 root 权限且没有通过一些棘手的接口控制 IC(集成芯片)模块的应用程序,这实际上对于几乎所有设备来说都是不同的!

最好的情况是,如果我们幸运的话,一个 sysfs 接口可能会帮助做到这一点,但它再次需要 root 并且可能因设备而异。

于 2013-10-06T05:39:20.823 回答
0

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

adb shell dumpsys 电池组 ac 0; dumpsys电池组usb 0;

于 2019-04-24T05:44:36.300 回答