app android设置只充电,2020-07-29 android app 监控充电状态

监控电池电量和充电状态

如果您要通过改变后台更新的频率降低这些更新对电池续航时间的影响,最好先从检查当前电池电量和充电状态入手。

执行应用更新对电池续航时间的影响取决于设备的电池电量和充电状态。设备通过交流电源充电时执行更新的影响可以忽略不计,因此在大多数情况下,只要设备连接到壁式充电器,您就可以最大限度地提高更新频率。相反,如果设备正在放电,降低更新频率有助于延长电池续航时间。

同理,您也可以检查电池充电电量,并在电池电量近乎耗尽时降低更新频率,甚至停止更新。

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

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

Action是:

Intent.ACTION_BATTERY_CHANGE

Intent.ACTION_BATTERY_LOW

Intent.ACTION_BATTERY_OKAY

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

Intent.ACTION_POWER_CONNECTED

Intent.ACTION_POWER_DISCONNECTED

示例代码:

package cn.com.mdj.robot.power;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.util.Log;

//监测充电状态

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("fjasmin", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_LOW");

mBatteryStateListener.onStateLow();

}

break;

case Intent.ACTION_BATTERY_OKAY://电量充满

if (mBatteryStateListener != null) {

Log.e("fjasmin", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_OKAY");

mBatteryStateListener.onStateOkay();

}

break;

case Intent.ACTION_POWER_CONNECTED://接通电源

if (mBatteryStateListener != null) {

Log.e("fjasmin", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_CONNECTED");

mBatteryStateListener.onStatePowerConnected();

}

break;

case Intent.ACTION_POWER_DISCONNECTED://拔出电源

if (mBatteryStateListener != null) {

Log.e("fjasmin", "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("fjasmin", "MainActivity --> onStateChanged--> ");

}

@Override

public void onStateLow() {

Log.e("fjasmin", "MainActivity --> onStateLow--> ");

Toast.makeText(MainActivity.this, "onStateLow", Toast.LENGTH_SHORT).show();

}

@Override

public void onStateOkay() {

Log.e("fjasmin", "MainActivity --> onStateOkay--> ");

Toast.makeText(MainActivity.this, "onStateOkay", Toast.LENGTH_SHORT).show();

}

@Override

public void onStatePowerConnected() {

Log.e("fjasmin", "MainActivity --> onStatePowerConnected--> ");

Toast.makeText(MainActivity.this, "onStatePowerConnected", Toast.LENGTH_SHORT).show();

}

@Override

public void onStatePowerDisconnected() {

Log.e("fjasmin", "MainActivity --> onStatePowerDisconnected--> ");

Toast.makeText(MainActivity.this, "onStatePowerDisconnected", Toast.LENGTH_SHORT).show();

}

});

}

@Override

protected void onDestroy() {

if (listener != null) {

listener.unregister();

}

super.onDestroy();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值