1 首先需要用到的是一个类继承BrocastReceiver
2 代码如下:
3 public class Battery_Info extends BroadcastReceiver
4 {
5
6 @Override
7 public void onReceive(Context context, Intent intent)
8 {
9 //首先要进行一个判段当前广播是不是接受的是电池信息的action操作
10 if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED))
11 {
12 int level=intent.getExtras().getInt("level");
13 //获取当前电量其中level和scale是系统已经预定好的不可更改为其他的变量名
14 int scale=intent.getExtras().getInt("scale");//获得总电量
15 Builder dialog=new AlertDialog.Builder(context);
16 dialog.setIcon(R.drawable.ic_launcher);
17 dialog.setTitle("电池电量");
18 dialog.setMessage("当前电池电量为:"+level*100/scale+"%");
19 dialog.setPositiveButton("确定", new OnClickListener(){
20 @Override
21 public void onClick(DialogInterface dialog, int which) {
22
23 dialog.dismiss();
24
25 }
26
27 }).create();
28 dialog.show();
29 }
30 }
31
32 }
33
34 然后在MainActivity中注册广播机制;
35 代码如下:
36 public class MainActivity extends Activity {
37
38 private Button getBattery;
39 public void onCreate(Bundle savedInstanceState) {
40 super.onCreate(savedInstanceState);
41 setContentView(R.layout.main);
42
43 this.getBattery=(Button) super.findViewById(R.id.button1);
44 this.getBattery.setOnClickListener(new OnClickListener()
45 {
46 public void onClick(View v)
47 {
48 Battery_Info batteryBrocastReceiver=new Battery_Info();
49
50 //注册广播之前需要进行一个Intent的一个过滤,也就是把他设置为电池信息状态的IntentFilter对象
51 IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
52
53
54 MainActivity.this.registerReceiver(batteryBrocastReceiver, filter);//注册广播机制
55 }
56 });
57 }
58 64 }