0

我想监控 Android 电池电量,即使它改变了一个百分比。应满足以下两个条件:

1-因为效率我不想通过轮询或定期检查电池电量(不使用警报管理器、处理程序或任何其他导致轮询的东西)

2-另一方面,即使我的应用程序不在前台或被杀死,我也需要接收电池电量的变化。

目前我正在使用这段代码:

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
context.registerReceiver(new MyBatteryReceiver(), ifilter);

在上下文(或我的活动)处于活动状态之前它工作得很好,即 MyBatteryReceiver 接收到电池电量的变化。

其他人建议将 null 与 registerReceiver 一起使用:

context.registerReceiver(null, ifilter);

这个解决方案意味着我应该定期检查电池电量。

我检查了很多帖子,包括这个:

Android 通过清单访问电池统计信息或监控电池电量

但他们都没有回答这个问题:How to monitor android battery level without polling? 当然,当级别太低或太高时,我们可以使用以下广播:

<action android:name="android.intent.action.ACTION_BATTERY_LOW"/>
<action android:name="android.intent.action.ACTION_BATTERY_OKAY"/>

不幸的是,不可能使用类似的广播来改变电池电量:

<action android:name="android.intent.action.BATTERY_CHANGED" />
4

0 回答 0