Android 如果插入车内的usb充电器,电池状态显示不正确

Android 如果插入车内的usb充电器,电池状态显示不正确,android,batterylevel,Android,Batterylevel,我有一个应用程序,可以显示android设备是通过插头、usb电缆、无线设备充电还是根本不充电。我正在使用下面的代码,它将显示正确的充电方法(如果有),直到我将手机(安卓4.1)或平板电脑(安卓4.3)充电到车内的usb充电器。它会说是通过插头充电,而应该说是usb设备。这背后的原因是什么 IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batterySta

我有一个应用程序,可以显示android设备是通过插头、usb电缆、无线设备充电还是根本不充电。我正在使用下面的代码,它将显示正确的充电方法(如果有),直到我将手机(安卓4.1)或平板电脑(安卓4.3)充电到车内的usb充电器。它会说是通过插头充电,而应该说是usb设备。这背后的原因是什么

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

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

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

从硬件的角度来看,交流充电器和汽车充电器之间没有任何区别,所以这并不奇怪。这是一个相当长的阅读,但USB充电的完整规范可以在这里找到,作为一个1.3MB的zip文件:


据推测,
BATTERY\u PLUGGED\u USB
已为USB主机保留,而
BATTERY\u PLUGGED\u AC
将仅被识别为充电器。无线充电需要手机/平板电脑内的硬件支持,因此具备该功能的硬件能够在使用时进行检测。

Hmm好的,谢谢,我会读到的。至少我知道我的代码没有错:)