//如果需要了解 底电耗模式 和待机模式 https://developer.android.google.cn/training/monitoring-device-state/doze-standby
//1在manifest添加权限
//底电耗模式和待机模式 白名单权限 <uses-permission-sdk-23 android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
//2在使用intent开启白名单
public class Battery { //添加底电耗模式和待机模式 的 白名单 public static void addWhiteList(Context context) { //获取电量管理员 PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //判断用户是否开启这个程序的白名单 //API大于等于23才能用添加到白名单 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //方法1 弹出菜单框让用户自己选择 if (!powerManager.isIgnoringBatteryOptimizations(context.getPackageName())) { // Intent intent=new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); // context.startActivity(intent); //方法2 直接弹框选择需要 加入白名单的app Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + context.getPackageName())); context.startActivity(intent); } } } }