【问题标题】:How can I check if the android phone is charging如何查看安卓手机是否在充电
【发布时间】:2011-09-23 23:05:49
【问题描述】:

我正在编写一个安卓应用程序。我想知道如何在我的应用程序启动时检查手机是否正在充电?

我已阅读此How to know if the phone is charging

但这只会在手机充电状态发生变化(从充电到停止充电,反之亦然)时注册并得到通知。但是,如果我的应用程序启动时手机正在充电,我该如何应对这种情况呢?

我在 android 中查找过 PowerManager 和 USBManager。也没有提供我需要的 API。

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    这个问题提供了您可能正在寻找的代码:Event ACTION_POWER_CONNECTED is not sent to my BroadcastReceiver

    还有一个 ACTION_POWER_DISCONNECTED 动作。

    这个问题说明广播是粘性的,所以即使你错过了广播:Android Battery in SDK

    【讨论】:

    • 谢谢,但不是。当我的应用程序启动时,我需要知道手机是否正在充电。注册任何意图只会告诉我充电阶段何时发生变化,但如果手机已经插入并充电怎么办?
    • 啊,我明白了。检查this post
    • 谢谢。手机充满电但连接了电源适配器(usb)怎么办?换句话说,手机没有耗尽任何电池(因为它已连接到电源)
    • 我真的不知道,但既然你知道如何捕捉事件,我认为你应该能够轻松找到它。我从来没有自己收过那个广播;-)
    • 谢谢。我想我可以在意图中获得 BatteryManager.EXTRA_PLUGGED
    【解决方案2】:

    从 API 23 开始变得更加简单,您可以使用 BatteryManger 的对象进行检查并调用 isCharging 函数。

    BatteryManager myBatteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
    
    public boolean isUSBCharging(){
       return  myBatteryManager.isCharging();
    }
    

    https://developer.android.com/reference/android/os/BatteryManager.html#isCharging()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多