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 }