锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2022-10-20 00:00:00 快速插拔电源电池连接器

Android有三种广播状态,电量低,电量充足,电量发生变化。
Action是:

Intent.ACTION_BATTERY_CHANGE Intent.ACTION_BATTERY_LOW Intent.ACTION_BATTERY_OKAY

Android插拔电源广播Action是:

Intent.ACTION_POWER_CONNECTED Intent.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, "onStatekay", 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();
    }
}

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

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章