我在清单中注册了 ACTION_POWER_CONNECTED 的广播接收器。当我连接电源时,它会被调用并且 onReceive 工作得很好。
在 onReceive 中,我使用谷歌文档中给出的方法检索电池充电状态,如下所示:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = false;
if(status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL){
isCharging = true;
}
这种方法在我第一次连接充电器时给了我正确的 isCharging 值。当我拔下插头并再次将其重新插入时,我对 isCharging 感到错误。
我正在使用摩托罗拉 XT1068 并面临上述问题。相同的代码适用于一加二。
有人可以请指导我,因为我想让我的应用程序在所有手机上工作,这就是为什么在 min API 10 上开发。
从 ans 的第三点开始(在 android 中检测每个百分比的电池状态变化),我也认为这也是一个问题。但我非常需要解决这个问题。
提前致谢。编辑:我知道,因为我的接收器已注册为已连接电池,因此检查它是否正在充电是没有意义的,但是我有其他未为此注册的接收器,并且仍会定期检查电池状态。