如果我们注册了对Intent.ACTION_BATTERY_CHANGED的监听,那么我们马上会收到一个Action为Intent.ACTION_BATTERY_CHANGED的intent,之后只要我们没有取消监听,一定电池发送变化,我们也会收到这样的intent。
通过该intent的extra我们可以取得电池的很多信息,比如电压可以用如下的方式:voltage=intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
BatteryManager类列出了该intent的extra所包含的信息:
String EXTRA_HEALTH : integer.它表示当前电池的健康状态。
可能的值为:
String EXTRA_ICON_SMALL : integer.the resource ID of a small status bar icon indicating the current battery state.
它是当前用于表示电池状态的icon的资源id.
String EXTRA_PLUGGED : integer.它表示当前手机使用的是哪里的电源。
可能的值有:
0:表示电源是电池
int BATTERY_PLUGGED_AC :表示电源是AC charger.[应该是指充电器]。
int BATTERY_PLUGGED_USB :表示电源是USB port.
String EXTRA_PRESENT: boolean.表示是否提供电池。有些手机在使用USB电源的情况下,即使拔出了电池,仍然可以正常工作。
String EXTRA_SCALE: integer.表示电池电量的最大值.
String EXTRA_STATUS : integer。表示电池的当前状态。
可能的值为:
int BATTERY_STATUS_CHARGING 表示正在充电。
int BATTERY_STATUS_FULL 表示充满
int BATTERY_STATUS_NOT_CHARGING 表示没有充电
int BATTERY_STATUS_UNKNOWN表示未知状态。
String EXTRA_TECHNOLOGY :表示电池使用的技术。比如,对于锂电池是Li-ion.
String EXTRA_TEMPERATURE:integer 。表示当前电池的温度。
String EXTRA_VOLTAGE : integer。表示当前电池的电压。.
另外还有两种intent专门用于表示电量低的情况
ACTION_BATTERY_LOW :表示当前电池电量低。
ACTION_BATTERY_OKAY:表示当前电池已经从电量低恢复为正常。