package com.xabber.android.ui.helper; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.PowerManager; import android.provider.Settings; import com.xabber.android.data.Application; import com.xabber.android.data.log.LogManager; public class BatteryHelper { private static final String LOG_TAG = BatteryHelper.class.getSimpleName(); public static boolean isOptimizingBattery() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Context context = Application.getInstance().getApplicationContext(); PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); return !powerManager.isIgnoringBatteryOptimizations(context.getPackageName()); } else { return false; } } @SuppressLint("BatteryLife") public static void sendIgnoreButteryOptimizationIntent(Activity activity) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); Uri uri = Uri.parse("package:" + Application.getInstance().getPackageName()); intent.setData(uri); try { activity.startActivityForResult(intent, 42); } catch (ActivityNotFoundException e) { LogManager.exception(LOG_TAG, e); } } } }