Step1:我们需要定义一个BroadcastReciever。
核心代码:
public class ChargeDetection extends BroadcastReceiver{
private boolean isCharging=false;
@Override
public void onReceive(Context context,Intent intent){
String action=intent.getAction();
//If receive battery changed,do it.
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
int status=intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN);
if (status==BatteryManager.BATTERY_STATUS_CHARGING) {
isCharging=true;
}else {
isCharging=false;
}
}
}
public boolean isCharging(){
return isCharging;
}
}
Step2:在onCreate()方法中注册这个接收器
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ChargeDetection receiver=new ChargeDetection();
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
initComponents();
}
Step3:使用isCharging()方法去获取充电状态
if(reciever.isChanging()){
//Do A
}else{
//Do B
}