如果我们注册了对
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.它表示当前电池的健康状态。
可能的值为:
int BATTERY_HEALTH_COLD
int BATTERY_HEALTH_DEAD
int BATTERY_HEALTH_GOOD
int BATTERY_HEALTH_OVERHEAT
int BATTERY_HEALTH_OVER_VOLTAGE
int BATTERY_HEALTH_UNKNOWN
int BATTERY_HEALTH_UNSPECIFIED_FAILURE
String
EXTRA_ICON_SMALL : integer.the resource ID of a small status bar icon indicating the current battery state.
它是当前用于表示电池状态的icon的资源id.
String
EXTRA_LEVEL: integer.它表示电池当前的电量, 它介于0和
EXTRA_SCALE之间
.
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_DISCHARGING
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。表示当前电池的电压。.
注意:
关于Action为Intent.
ACTION_BATTERY_CHANGED
的intent使用实例请参照《
电池的监听实例1》
另外还有两种intent专门用于表示电量低的情况
ACTION_BATTERY_LOW :
表示当前电池电量低。
ACTION_BATTERY_OKAY:表示当前电池已经从电量低恢复为正常。