如何获取android中的电池电量变化(仅当有电量/百分比变化时)?

Ale*_*ian 3 android power-management

有没有办法仅在电量变化时获取电池电量?

我知道如何使用获取电池信息Intent.ACTION_BATTERY_CHANGED,然后我将其电池电量与上次电池电量(我之前保存的)进行比较,以防它等于我不做任何其他事情,我做我的事情。

我也知道ACTION_BATTERY_CHANGED当电池信息发生变化(不仅仅是级别)时会发生这种情况,因此我需要检查级别。我不知道为什么,但有时效果不好。

有更好的方法吗?

Dir*_*kel 5

没有其他(已记录的)方法来获取电池电量。当电平没有变化时忽略广播即可。正如你已经做的那样。

您可以通过以下方式立即获取最新状态:

IntentFilter batIntentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent battery = this.registerReceiver(null, batIntentFilter);
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
Log.d("TAG", "Current Level: " + level);
Run Code Online (Sandbox Code Playgroud)

  • 这怎么不是最新(又名最新)报告的水平?如果您想访问最新的但只有一个级别(最新的级别之前的级别),只需将最新的级别写入 SharedPreferences 并在下次获取时从那里读取它。 (3认同)