Android电量和插拔电源状态广播监听

来源:互联网 发布:淘宝双十一交易额2014 编辑:程序博客网 时间:2024/05/01 14:28

Android电量和插拔电源状态广播监听

Android电量广播状态有3种,电量低,电量充满,电量发生改变。
Action是:

Intent.ACTION_BATTERY_CHANGEIntent.ACTION_BATTERY_LOWIntent.ACTION_BATTERY_OKAY

Android的插拔电源广播的Action是:

Intent.ACTION_POWER_CONNECTEDIntent.ACTION_POWER_DISCONNECTED

示例代码:

public class BatteryListener {    private Context mContext;    private BatteryBroadcastReceiver receiver;    private BatteryStateListener mBatteryStateListener;    public BatteryListener(Context context) {        mContext = context;        receiver = new BatteryBroadcastReceiver();    }    public void register(BatteryStateListener listener) {        mBatteryStateListener = listener;        if (receiver != null) {            IntentFilter filter = new IntentFilter();            filter.addAction(Intent.ACTION_BATTERY_CHANGED);            filter.addAction(Intent.ACTION_BATTERY_LOW);            filter.addAction(Intent.ACTION_BATTERY_OKAY);            filter.addAction(Intent.ACTION_POWER_CONNECTED);            filter.addAction(Intent.ACTION_POWER_DISCONNECTED);            mContext.registerReceiver(receiver, filter);        }    }    public void unregister() {        if (receiver != null) {            mContext.unregisterReceiver(receiver);        }    }    private class BatteryBroadcastReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            if (intent != null) {                String acyion = intent.getAction();                switch (acyion) {                    case Intent.ACTION_BATTERY_CHANGED://电量发生改变                        if (mBatteryStateListener != null) {                            Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_CHANGED");                            mBatteryStateListener.onStateChanged();                        }                        break;                    case Intent.ACTION_BATTERY_LOW://电量低                        if (mBatteryStateListener != null) {                            Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_LOW");                            mBatteryStateListener.onStateLow();                        }                        break;                    case Intent.ACTION_BATTERY_OKAY://电量充满                        if (mBatteryStateListener != null) {                            Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_OKAY");                            mBatteryStateListener.onStateOkay();                        }                        break;                    case Intent.ACTION_POWER_CONNECTED://接通电源                        if (mBatteryStateListener != null) {                            Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_CONNECTED");                            mBatteryStateListener.onStatePowerConnected();                        }                        break;                    case Intent.ACTION_POWER_DISCONNECTED://拔出电源                        if (mBatteryStateListener != null) {                            Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_DISCONNECTED");                            mBatteryStateListener.onStatePowerDisconnected();                        }                        break;                }            }        }    }    public interface BatteryStateListener {        public void onStateChanged();        public void onStateLow();        public void onStateOkay();        public void onStatePowerConnected();        public void onStatePowerDisconnected();    }}

MainActivity中调用:

public class MainActivity extends AppCompatActivity {    private BatteryListener listener;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listener = new BatteryListener(this);        listener.register(new BatteryListener.BatteryStateListener() {            @Override            public void onStateChanged() {                Log.e("zhang", "MainActivity --> onStateChanged--> ");            }            @Override            public void onStateLow() {                Log.e("zhang", "MainActivity --> onStateLow--> ");                Toast.makeText(MainActivity.this, "onStateLow", Toast.LENGTH_SHORT).show();            }            @Override            public void onStateOkay() {                Log.e("zhang", "MainActivity --> onStateOkay--> ");                Toast.makeText(MainActivity.this, "onStateOkay", Toast.LENGTH_SHORT).show();            }            @Override            public void onStatePowerConnected() {                Log.e("zhang", "MainActivity --> onStatePowerConnected--> ");                Toast.makeText(MainActivity.this, "onStatePowerConnected", Toast.LENGTH_SHORT).show();            }            @Override            public void onStatePowerDisconnected() {                Log.e("zhang", "MainActivity --> onStatePowerDisconnected--> ");                Toast.makeText(MainActivity.this, "onStatePowerDisconnected", Toast.LENGTH_SHORT).show();            }        });    }    @Override    protected void onDestroy() {        if (listener != null) {            listener.unregister();        }        super.onDestroy();    }}
1 1
原创粉丝点击