BATTERY_STATUS_CHARGING 和 BATTERY_PLUGGED_AC 有什么区别?

What is the difference between BATTERY_STATUS_CHARGING and BATTERY_PLUGGED_AC?

我正在学习广播接收器,并关注 official docs

有什么区别
BatteryManager.BATTERY_STATUS_CHARGING
BatteryManager.BATTERY_PLUGGED_AC

我使用 telnet localhost 5554 并输入 power ac off,然后输入 power ac on。 我希望 BATTERY_STATUS_CHARGING 会自动触发,但它没有。为什么?

为什么AC插上不代表充电?

可充电设备不会一直在充电。

它会一直充电到电池充满,然后会等到电池电量下降到一定程度再开始充电。如果它一直充电,电池就会过度充电。

例如,设备可能会设置为在电池电量低于 80% 时开始充电。然后它会充电到100%然后停止充电。

BATTERY_PLUGGED_AC 表示设备已插入交流适配器。这 "counterpart" 将是 BATTERY_PLUGGED_USB。请注意,这与充电状态无关。

而对于BATTERY_STATUS,基本上有4种类型:BATTERY_STATUS_CHARGING、BATTERY_STATUS_NOT_CHARGING、BATTERY_STATUS_DISCHARGING和BATTERY_STATUS_FULL。您将根据电池状态收到不同的通知。

仅仅因为设备已插入,并不总是意味着它正在充电,这就是为什么当您执行 "power ac off" 然后 "power ac on".[= 时 BATTERY_STATUS_CHARGING 不会被触发的原因10=]