【问题标题】:How to stop an android device from being charged programmatically?如何阻止安卓设备以编程方式充电?
【发布时间】:2011-07-11 17:46:46
【问题描述】:

是否有 Android API 可以在实际充电时停止充电?

【问题讨论】:

  • 非常有效的问题,因为最好防止充电超过 70% 以减少电池老化。但是答案很简单:没有 API 可以实现这一点:(
  • stackoverflow.com/questions/15993635/… 建议在有根设备上是可能的?

标签: android


【解决方案1】:

阅读以前的答案,似乎没有办法专门在软件中执行此操作。然而,它应该相对容易通过一点硬件帮助来做到这一点 - 即通过使用任何具有开放 API 的支持蓝牙或 WiFi 的智能电气开关。然后,手机可以随时以编程方式打开或关闭充电器。

【讨论】:

  • 完美的解决方案。不知道为什么有人对你投了反对票。见How to automatically stop charging your phone
  • 好吧,严格来说,它确实回答了与所问问题不同的问题。但是由于所问问题的答案是“否”,所以我的建议总比没有好。至于你链接的帖子——这几乎就是我最终做的,除了我有一个不同的设备,它有两个可切换的插座,而不是一个,它在亚马逊上只卖 27 美元(提示 - 它的名字中有“天才”这个词)。
  • 这个答案很明显错误。您可以通过 /sys/class/power_supply/battery/device/charge 接口从软件执行此操作,但在大多数系统上只有 root 可以写入它
  • @kibber 链接的文章是 404 的,你写了一个 Android 应用程序吗?手头有源代码吗?
  • 我使用了 Tasker、Wink 和 IFTTT(在它免费的时候回来了)。手边没有脚本,但它们相当琐碎。今天我可能会使用 Tasker 和来自这个链接的东西:iot.stackexchange.com/questions/3437/…
【解决方案2】:

是否有用于停止充电的 Android API,即使实际充电已开启?

AFAIK 编号

理由:

android.intent.action.BATTERY_CHANGED 是一个受保护的意图,只能由系统发送。因此,您不能复制或覆盖该功能。

【讨论】:

【解决方案3】:

你们都忽略了这一点 - 限制充电的目的是通过使其远离充满电的条件(接近电量耗尽,但这是一个不同的问题)来延长电池寿命。如果您预计需要充满电,请告诉它充电至 100。

如果您无法设置充电限制,那么电池很少会处于空闲状态,并且在使用充电器时会理想地充电。不过,它可能需要设备级别的支持。

【讨论】:

  • 不充电到100%是为了避免充电超过70%和发热结合的时候老化更快。另一方面,放电至 0% 对电池老化没有不利影响,并且已经得到很好的保护,因为电池可以在不老化的情况下降至 2800mV,而大多数设备将其限制在 3200mV。信息取自(很难找到)电池制造商和用户手动测试消耗。
  • @3c71,将锂离子电池的电量降至 0%(甚至制造商告诉您的“0%”)肯定不利于电池的使用寿命。
  • @Nate,完全没有,我在很多设备上都这样做过,并且从未失去任何容量,原因很简单:电池只有在充电水平低于 2.8V 时才会恶化,这是一种方式超出制造商设定的 3.2V/0%。其他电工/工程师也通过实际测试和实际测量证实了这一点。
  • 这不仅仅是管理充电,还管理热量。例如,我的设备可以在显示屏打开时充电时自动关闭,同时还可以录制视频。当热量上升时能够“节流”充电会非常有帮助。
  • @3c71,我假设你是 BatteryMonitorWidget 的 3c71?您是否认为 BatteryMonitorWidget 可以支持停止充电,如下所述:stackoverflow.com/a/36229927/4669417
【解决方案4】:

https://play.google.com/store/apps/details?id=es.guille.stopcharge 使用echo "0" > /sys/class/power_supply/battery/device/charge。只要设备未充满电(处于充电状态),它就适用于 nexus 4(已植根)。

也相关:https://android.stackexchange.com/questions/15001/how-can-i-avoid-the-battery-charging-when-connected-via-usb

【讨论】:

    【解决方案5】:

    与一些表明不可能的答案相反,使用 ROOT 确实是可能的。您可以在 Play 商店中找到一些允许您执行此操作的应用程序(当然需要 root 权限)。

    在我试用过的每部手机上都能运行的最佳应用是电池充电限制。您可以从Play StoreXDA discussion thread 下载它。该应用正在积极开发中,如果您发现您的手机不受支持,只需在其GitHub page 上提交问题即可。


    注意:我不是这个应用程序的开发者。

    【讨论】:

      【解决方案6】:

      很遗憾,这是不可能的。 Android 只有读取电池数据的 API。

      电池充电控制在 Android 内核和电池 IC 模块内部。制造商确实会不时更改它,例如 HTC 的周期很小,从 95% 到 100%(IMO 是个坏主意),三星确实会在达到 100% 时停止充电,但我从未见过能够停止充电的设备在 100% 之前充电以减少电池老化 :(.

      如果幸运的话,sysfs 接口可能会有所帮助,但它需要 root 并且会因设备而异。

      【讨论】:

        【解决方案7】:

        只是补充一下。三星手机在 100% 后不会停止充电。据我所知,他们“涓流”收费超过这一点,但他们建议您不要将手机充电超过 100% 超过 1 小时。像 Anker 这样的电池制造商也有同样的声明,因此停止 100% 充电的想法非常有用。让手机继续充电的风险是电池膨胀并最终导致电池破裂。在拥有手机后的 3 个月内,我的三星电池没电了,我并没有意识到这一点。

        扩展原始问题。我注意到一些内核允许快速充电。如果他们能够提高充电率,我们是否可以降低充电率(涓流)以满足所需的完成时间(当您的早晨闹钟响起时)??

        【讨论】:

          【解决方案8】:

          我在交流插座上安装了一个计时器,我将 Moto E 的充电器插入其中。在估计电池需要充电到 85% 左右的时间后,我设置了计时器。这不是我想的解决方案,但至少它可以让我的手机不会被充电到 100%,因为我在设置计时器时通常会在短边犯错。

          【讨论】:

            【解决方案9】:

            我认为不会有这样的 api。如果它确实存在,它需要得到设备制造商的支持,因为它不是纯粹的操作系统杠杆功能。同样的原因会使使用它成为一个坏主意,因为并非所有设备都支持它。

            话虽如此,使用/实施它是一个坏主意,移动设备不是直接从电源运行的,如果用户不想实际充电,则不会插入电缆设备。

            【讨论】:

            • 我想这样做的原因是我想开发一个应用程序,它会在电池充满时停止充电,当它说 95% 时再次开始充电。它将节省大量电力,因为充电器不会整夜充电,而是只会在需要工作的时候工作。认为绿色......
            • @daniel 我相信手机已经做到了(可能不是 95%,而是某个百分比 androidcentral.com/bump-charging-what-it-and-how-do-it
            • @Glendon Trullinger 你有一个正确的观点,猜猜只有开发人员面对它:-),在不需要时保持屏幕关闭/锁定的旁注似乎有助于解决我的温度问题
            • @Ravi 我删除了我的评论,因为我意识到我可以卸下电池来尝试解决该特定问题。我很快就会试试XD
            • 有趣.. 刚刚在我的 (Droid X) 上试了一下,插入 USB 时得到了相同的结果。但是,在没有电池的情况下插入墙壁时,它确实运行良好。我猜 USB 没有输出足够的电力来保持运行。
            猜你喜欢
            • 2013-04-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多