Android 忽略电池优化 您所在的位置:网站首页 android省电优化方案 Android 忽略电池优化

Android 忽略电池优化

2023-04-14 16:31| 来源: 网络整理| 查看: 265

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」

Android 忽略电池优化

由于有些产品本身需要长时间定位、长时间的后台运行,即使锁屏之后还需要保证任务的正常运行,随着安卓系统的升级,权限的收紧,这个场景变得越来越困难,很多开发者都为此苦恼,特别咱还是一些小厂,拿不到厂商的白名单,就更难受了。

保活怎么做

现在的保活不像以前,需要用很多黑科技来帮助我们实现,比如1像素技术、双进程守护,而现在的保活需要遵循谷歌官方文档的资料来进行,更多的反而是放在用户端了。

比如安卓官方文档在后台限制中是这么说的:

在后台中运行的 Service 会消耗设备资源,这可能会降低用户体验。 为了缓解这一问题,系统对这些 Service 施加了一些限制。 如果满足以下任意条件,应用将被视为处于前台: 具有可见 Activity(不管该 Activity 已启动还是已暂停)。 具有前台 Service。 另一个前台应用已关联到该应用(不管是通过绑定到其中一个 Service,还是通过使用其中一个内容提供程序)。 例如,如果另一个应用绑定到该应用的 Service,那么该应用处于前台: IME(输入法) 壁纸 Service 通知侦听器 语音或文本 Service 如果以上条件均不满足,应用将被视为处于后台。 复制代码

所以根据以上条件,开发者们想出来了的保活方案

前台服务 后台播放无声音乐 傀儡通知

即使开发者做到以上功能,也不能保证应用就能存活,因为保活和省电不能兼得。

现在的保活想要做的比较好,还需要从用户层面进行考虑。 比如:

忽略电池优化 允许自启动 手机管家app的白名单 忽略电池优化

默认的程序是允许电池优化的,优化的目的就是防止程序在后台偷偷的耗电,我们也见过部分应用有下面的这个功能。

1.jpg

这就是在向用户申请忽略电池优化,当用户进行允许后,可以适当的延长应用的存活时间。这样就不需要用户在应用和通知->高级->特殊应用权限->电池优化中找到该应用忽略电池优化这种繁琐的步骤了。

如何使用呢?

在AndroidManifest.xml 中申请权限,不需要动态权限。 复制代码 申请忽略电池优化 @RequiresApi(api = Build.VERSION_CODES.M) public void requestIgnoreBatteryOptimizations() { try { Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + getPackageName())); startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } 复制代码 判断是否开启电池优化 @RequiresApi(api = Build.VERSION_CODES.M) private boolean isIgnoringBatteryOptimizations() { boolean isIgnoring = false; PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); if (powerManager != null) { isIgnoring = powerManager.isIgnoringBatteryOptimizations(getPackageName()); } return isIgnoring; } 复制代码

这样就完成啦。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有