0

如果手机正在通过插头、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";
        }
4

1 回答 1

1

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

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

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

你在测试什么型号的手机?


EXTRA_STATUS不习惯知道设备是如何充电的

EXTRA_PLUGGED改为使用

于 2013-08-09T16:23:25.453 回答