batteryStatus无法正确显示

时间:2013-08-09 16:13:53

标签: android batterylevel

我试图在应用上显示手机是否通过插头,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";
        }

1 个答案:

答案 0 :(得分:1)

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

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

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

    您正在测试哪种手机型号?


    EXTRA_STATUS不习惯了解设备的充电方式

    使用EXTRA_PLUGGED代替