usar studio significa segundo que plano notificaciones inteligente force espera energia doze como bateria ahorro ahorrador android android-intent optimization android-6.0-marshmallow android-doze

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.