2012-05-22 55 views
1

只有在电平变化时才有方法获取电池电量吗?如何在android中获取电池电量变化(只有当电平/百分比变化时)?

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

我也知道ACTION_BATTERY_CHANGED发生在有电池信息变化(不仅水平),所以我需要检查水平的原因。我不知道为什么,但有时它不工作。

有没有更好的方法来做到这一点?

+0

你是什么意思“它这么想的正常工作”是什么意思?你想念广播吗?或者当你得到一个没有改变? –

+0

我不完全确定它在我的手机中没有发生,我也无法重新创建它。但我认为我做的检查没有通过,所以我想知道是否有其他方法可以做到这一点? –

回答

3

没有其他(记录)的方式来获得电池电量。当关卡没有改变时,忽略广播。正如你已经做到的。

你可以立即获得最新的状态改为:

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); 
+0

我需要取消注册吗?接收器是空的,所以我认为我没有,是对的吗? –

+0

我也这么认为。 –

+0

我试过了,它不工作。我从另一个battery_changed接收器中调用了它,它给了我相同的级别...而不是最后一个。 –