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
- Android电量和插拔电源状态广播监听
- 广播监听USB和外设插拔状态
- 监听耳机拔插状态
- Android 监听 USB 接口的插拔状态
- Android 插拔sd广播
- Android 插拔sd广播
- 安卓广播监听USB插拔
- android 监听耳机插拔
- 实时获取耳机插拔状态和插拔动作
- Android广播监听手机电量
- android 获取 USB 拔插广播消息
- android 获取 USB 拔插广播消息
- Android监听USB插拔事件
- Android 耳机按键与拔插监听
- wangchenfeng android 监听耳机插拔
- android耳机插拔的监听
- android 监听拔打电话状态
- 添加sdcard插拔事件的监听广播
- ubuntu操作系统中如何获取权限
- ADB命令使用技巧
- Qt-Matlab-Opencv配置小记
- [51nod1299]监狱逃离
- 蓝桥杯BASIC-19(完美的代价)
- Android电量和插拔电源状态广播监听
- 从C++到Java(一)
- MyBatis介绍和入门一
- L04JavaScript基础教程2
- 优达学城 深度学习 任务1
- ACM计算几何题目推荐
- React实战-javascript访问服务端数据大全
- [007-Makefile-笔记] Makefile的内嵌函数
- 关于java.lang.IllegalArgumentException