Как устройство сообщает о разнице между BATTERY_PLUGGED_USB и BATTERY_PLUGGED_AC в BatteryManager?

Я понимаю, что есть два разных флага, и они представляют, подключено ли устройство к сети переменного тока или к USB-зарядке. Как устройство узнает об этом и что оно сообщает операционной системе?

Я бы подумал, что ОС не может отличить телефон, подключенный к USB-порту ноутбука, и зарядку при 500 мА, и телефон, подключенный к настенному зарядному устройству, и зарядку при 500 мА.

  • Возможно, разница в том, на какой зарядке устройства? (Если это так, каков минимальный ток для "переменного тока"? Свободно ли устройство определять отсечку?)

  • Или разница в том, что устройство также может передавать данные по кабелю? Это кажется странным способом различить два.

https://developer.android.com/reference/android/os/BatteryManager

Заранее спасибо!

1 ответ

Решение

Обычный AC зарядное устройство-адаптер не имеет USB хост-контроллер доступен (однонаправленный), в отличие от USB порт на компьютере (двунаправленный). моя розетка с двумя только для зарядки USB порты по-прежнему ведут себя иначе, чем мой QC4 Зарядное устройство-адаптер, с которым определяется как "турбо питание"... это третий режим, который он может обнаружить - и где должен присутствовать хотя бы контроллер зарядки, чтобы согласовать вольт и ампер, используемые для зарядка. Между тем, есть даже QC4+. также есть BATTERY_PLUGGED_WIRELESS...например. PowerMat, также только для совместимых устройств.

Другие вопросы по тегам