【问题标题】:batteryStatus not displaying correctly电池状态未正确显示
【发布时间】:2013-08-10 00:39:57
【问题描述】:

如果手机正在通过插头、USB 电缆充电或根本不充电,我正在尝试在应用程序上显示。我正在使用下面的代码,如果我使用的是 USB 电缆,它将显示“通过 USB 电缆充电”,如果手机电池已满或未充电,它会显示“未充电”。但是当我通过插头给手机充电时,它会显示“通过 USB 电缆充电”。我使用的是普通的交流插头充电器,而不是可以插入 USB 电缆的交流插头充电器(如果重要的话)。为什么会这样?

        IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        Intent batteryStatus = registerReceiver(null, filter);

        int chargeState = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);

        if(chargeState == BatteryManager.BATTERY_PLUGGED_USB)
        {
            chargingBy = "charging via usb cable";
        }
        else if (chargeState == BatteryManager.BATTERY_PLUGGED_AC)
        {
            chargingBy = "charging via plug";
        }
        else
        {
            chargingBy = "not charging";
        }

【问题讨论】:

    标签: android batterylevel


    【解决方案1】:

    共有三种不同类型的 USB 端口:

    1. 标准端口。
    2. 充电下游端口。
    3. 专用充电端口。

    前两种可以在您的计算机上找到,第三种适用 “哑”壁式充电器

    您正在测试什么型号的手机?


    EXTRA_STATUS 不用于知道设备是如何充电的

    改用EXTRA_PLUGGED

    【讨论】:

    • 现在可以了,谢谢 :) 所以 extra_status 用于了解电池是否正在充电,而 extra_plugged 用于了解电池如何充电?
    • 太棒了,真的:)
    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多