【问题标题】:BroadcastReceiver allways get not chargingBroadcastReceiver 总是不充电
【发布时间】:2013-11-05 06:18:50
【问题描述】:

我正在尝试检测设备当前是否正在充电,但此代码始终将 isCharging 变量设置为 false

public class PowerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent)
    {
        int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
        boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;

        int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
        boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

        if (isCharging)
        {
            Toast.makeText(context, "Charging", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(context, "Not charging", Toast.LENGTH_LONG).show();
        }

    }

}

【问题讨论】:

    标签: android broadcastreceiver


    【解决方案1】:

    基本上是You cannot register for ACTION_BATTERY_CHANGED via the manifest。以编程方式注册它

    查看参考这些链接肯定会有所帮助:)

    Battery status is always not charging

    https://github.com/commonsguy/cw-omnibus/tree/master/SystemEvents/OnBattery

    http://developer.android.com/training/monitoring-device-state/battery-monitoring.html

    【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多