当前位置:   article > 正文

Android电量和插拔电源状态广播监听_android 充电器拔出广播

android 充电器拔出广播

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

  1. Intent.ACTION_BATTERY_CHANGE
  2. Intent.ACTION_BATTERY_LOW
  3. Intent.ACTION_BATTERY_OKAY

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

  1. Intent.ACTION_POWER_CONNECTED
  2. Intent.ACTION_POWER_DISCONNECTED

示例代码:

  1. public class BatteryListener {
  2. private Context mContext;
  3. private BatteryBroadcastReceiver receiver;
  4. private BatteryStateListener mBatteryStateListener;
  5. public BatteryListener(Context context) {
  6. mContext = context;
  7. receiver = new BatteryBroadcastReceiver();
  8. }
  9. public void register(BatteryStateListener listener) {
  10. mBatteryStateListener = listener;
  11. if (receiver != null) {
  12. IntentFilter filter = new IntentFilter();
  13. filter.addAction(Intent.ACTION_BATTERY_CHANGED);
  14. filter.addAction(Intent.ACTION_BATTERY_LOW);
  15. filter.addAction(Intent.ACTION_BATTERY_OKAY);
  16. filter.addAction(Intent.ACTION_POWER_CONNECTED);
  17. filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
  18. mContext.registerReceiver(receiver, filter);
  19. }
  20. }
  21. public void unregister() {
  22. if (receiver != null) {
  23. mContext.unregisterReceiver(receiver);
  24. }
  25. }
  26. private class BatteryBroadcastReceiver extends BroadcastReceiver {
  27. @Override
  28. public void onReceive(Context context, Intent intent) {
  29. if (intent != null) {
  30. String acyion = intent.getAction();
  31. switch (acyion) {
  32. case Intent.ACTION_BATTERY_CHANGED://电量发生改变
  33. if (mBatteryStateListener != null) {
  34. Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_CHANGED");
  35. mBatteryStateListener.onStateChanged();
  36. }
  37. break;
  38. case Intent.ACTION_BATTERY_LOW://电量低
  39. if (mBatteryStateListener != null) {
  40. Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_LOW");
  41. mBatteryStateListener.onStateLow();
  42. }
  43. break;
  44. case Intent.ACTION_BATTERY_OKAY://电量充满
  45. if (mBatteryStateListener != null) {
  46. Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_OKAY");
  47. mBatteryStateListener.onStateOkay();
  48. }
  49. break;
  50. case Intent.ACTION_POWER_CONNECTED://接通电源
  51. if (mBatteryStateListener != null) {
  52. Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_CONNECTED");
  53. mBatteryStateListener.onStatePowerConnected();
  54. }
  55. break;
  56. case Intent.ACTION_POWER_DISCONNECTED://拔出电源
  57. if (mBatteryStateListener != null) {
  58. Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_DISCONNECTED");
  59. mBatteryStateListener.onStatePowerDisconnected();
  60. }
  61. break;
  62. }
  63. }
  64. }
  65. }
  66. public interface BatteryStateListener {
  67. public void onStateChanged();
  68. public void onStateLow();
  69. public void onStateOkay();
  70. public void onStatePowerConnected();
  71. public void onStatePowerDisconnected();
  72. }
  73. }

MainActivity中调用:

  1. public class MainActivity extends AppCompatActivity {
  2. private BatteryListener listener;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. listener = new BatteryListener(this);
  8. listener.register(new BatteryListener.BatteryStateListener() {
  9. @Override
  10. public void onStateChanged() {
  11. Log.e("zhang", "MainActivity --> onStateChanged--> ");
  12. }
  13. @Override
  14. public void onStateLow() {
  15. Log.e("zhang", "MainActivity --> onStateLow--> ");
  16. Toast.makeText(MainActivity.this, "onStateLow", Toast.LENGTH_SHORT).show();
  17. }
  18. @Override
  19. public void onStateOkay() {
  20. Log.e("zhang", "MainActivity --> onStateOkay--> ");
  21. Toast.makeText(MainActivity.this, "onStateOkay", Toast.LENGTH_SHORT).show();
  22. }
  23. @Override
  24. public void onStatePowerConnected() {
  25. Log.e("zhang", "MainActivity --> onStatePowerConnected--> ");
  26. Toast.makeText(MainActivity.this, "onStatePowerConnected", Toast.LENGTH_SHORT).show();
  27. }
  28. @Override
  29. public void onStatePowerDisconnected() {
  30. Log.e("zhang", "MainActivity --> onStatePowerDisconnected--> ");
  31. Toast.makeText(MainActivity.this, "onStatePowerDisconnected", Toast.LENGTH_SHORT).show();
  32. }
  33. });
  34. }
  35. @Override
  36. protected void onDestroy() {
  37. if (listener != null) {
  38. listener.unregister();
  39. }
  40. super.onDestroy();
  41. }
  42. }

文章来源:https://blog.csdn.net/qq_33689414/article/details/53769800

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/738300
推荐阅读
相关标签
  

闽ICP备14008679号