android - studio - ¿Cómo despido correctamente la intención de ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS?
notificaciones en segundo plano android studio (3)
Como se indica en la documentación:
"Una aplicación que tenga el permiso REQUEST_IGNORE_BATTERY_OPTIMIZATIONS puede activar un cuadro de diálogo del sistema para permitir que el usuario agregue la aplicación a la lista blanca directamente, sin ir a la configuración. La aplicación activa un ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Intentando activar el cuadro de diálogo".
¿Alguien puede decirme la forma correcta de disparar esta intención?
Para evitar la suspensión desde Google Play Store, es mejor llevar al usuario a la configuración de optimización de la batería, para agregar manualmente la aplicación a la lista blanca
Intent myIntent = new Intent();
myIntent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
startActivity(myIntent);
Además no necesita tener
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
permiso en el archivo manifiesto
Intent myIntent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
myIntent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
myIntent.setData(Uri.parse("package:" + getActivity().getPackageName()));
}
startActivity(myIntent);
Intent intent = new Intent();
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
}
context.startActivity(intent);
Vea esta respuesta para más información.