Android系统为了增加电池使用时间,会对一些长时间在后台运行的应用进行限制。而我们的项目中,却不希望被限制。这时,可以提示用户关闭系统对应用的电池优化(默认时优化)。
1.取消/关闭电池优化,需要在AndroidManifest.xml加入使用权限
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
2.跳转到优化界面。在跳转之前可以先判断是否已经关闭了电池优化:
//这个方法返回true的时候表明已经关闭,false则是已开启优化
powerManager.isIgnoringBatteryOptimizations("应用报名");//context.getPackageName()获得包名
3.有两种情况,一种是可以跳到设置里面去找相关的应用进行开关,另一种是直接弹窗,如下图:
两种方式主要区别在setAction的不同。
第一种方式:
Intent i = new Intent();
//跳转到设置里面的电池优化管理列表
i.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
context.startActivity(i);
第二种方式:
Intent i = new Intent();
i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
//data为应用包名
i.setData(Uri.parse("package:" + mContext.getPackageName()));
startActivity(i);