public class BatteryActivity extends Activity {
/** Called when the activity is first created. */
private ToggleButton tb=null;
private TextView tv=null;
//聲明下面atteryReceiver類的對象
private BatteryReceiver receiver=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//setContentView(R.layout.main);
receiver=new BatteryReceiver();
tv=(TextView)findViewById(R.id.tv);
tb=(ToggleButton)findViewById(R.id.tb);
//對按鈕進行監聽
tb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton compoundButton,
boolean isChecked) {
//獲取電池電量
if(isChecked){
IntentFilter filter=new
//傳入控電池電量的廣播消息
IntentFilter(Intent.ACTION_BATTERY_CHANGED);
//註冊BroadcastReceiver
registerReceiver(receiver, filter);
}else {
//停止獲取電池電量
unregisterReceiver(receiver);
tv.setText(null);
}
}
});
}
//創建BatteryReceiver的類繼承BroadcastReceiver
private class BatteryReceiver extends BroadcastReceiver{
@Override
//負責接收廣播並且處理的方法
public void onReceive(Context context, Intent intent) {
//獲得當前電量
int current=intent.getExtras().getInt("level");
//獲得總電量
int total=intent.getExtras().getInt("scale");
//運算出電池電量的百分比
int percent=current*100/total;
tv.setText("現在的電量是"+percent+"%。");
}
}
}