private int intLevel;
private int intScale;
private Button mButton01;
private AlertDialog d;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
/*
* 如果捕捉到的action是ACTION_BATTERY_CHANGED, 就执行onBatteryInfoReceiver()
*/
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
intLevel = intent.getIntExtra("level", 0);
intScale = intent.getIntExtra("scale", 100);
onBatteryInfoReceiver(intLevel, intScale);
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_battery);
/* 初始化Button,并设定按下后的操作 */
mButton01 = (Button) findViewById(R.id.myButton1);
mButton01.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
/* 注册几个系统 BroadcastReceiver,作为访问电池计量之用 */
registerReceiver(mBatInfoReceiver, new IntentFilter(
Intent.ACTION_BATTERY_CHANGED));
}
});
}
/* 拦截到ACTION_BATTERY_CHANGED时要执行的method */
public void onBatteryInfoReceiver(int intLevel, int intScale) {
/* create 弹出的对话窗口 */
d = new AlertDialog.Builder(MyBattery.this).create();
d.setTitle("系统信息");
/* 将取得的电吕计量显示于Dialog中 */
d.setMessage("剩余电池量"
+ String.valueOf(intLevel * 100 / intScale) + "%");
/* 设定返并加画面的按钮 */
d.setButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
/* 反注册Receiver,并关闭对话窗口 */
unregisterReceiver(mBatInfoReceiver);
d.dismiss();
}
});
d.show();
}