我在清单中注册了ACTION_POWER_CONNECTED的广播接收器。 当我连接电源时,这将被调用,onReceive正常工作。
在onReceive中我正在使用google docs中给出的方法检索电池充电状态,如下所示:
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并面临上述问题。 相同的代码适用于One Plus Two。
有人可以请指导我,因为我想让我的应用程序在所有手机中工作,这就是为什么在最低API 10上开发。
从ans(Detect Changing Battery state at every percentage in android)的第三点开始,我也相信这是一个问题。但我非常需要一个解决方法。
提前致谢。 编辑:我知道因为我的接收器已经注册了电池连接,所以没有必要检查它是否充电但是我有其他没有注册的接收器并且仍然定期检查电池状态。