You should register broadcast like this:
public class BatteryActivity extends Activity{
private BatteryReceiver batteryReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.battary);
batteryReceiver = new BatteryReceiver();
IntentFilter batteryFilter = new IntentFilter();
batteryFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, batteryFilter);
}
private class BatteryReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
int level = arg1.getIntExtra("level", 0);
Log.i("Battery", "当前电池的剩余电量为:" + level + "%");
}
}
@Override
protected void onDestroy() {
unregisterReceiver(batteryReceiver);
super.onDestroy();
}
}
then in onReceive()
,you can arg1.getIntExtra("",0)
,the first parmas can like these:
- "level" (int) residual capacity
- "scale" (int) the maximun
- "voltage" (int) voltage
- "temperature" (int) temperature
- "techonology" (String) battery stype
- "status"(int) charged state
- etc..
Hope can help you.