Android应用程序出现在电池优化白名单中,但实际上并不存在

时间:2017-10-16 03:05:22

标签: android android-doze battery-saver

背景:

我正在开发一款Android应用。当应用程序启动时,它会检查是否使用isIgnoringBatteryOptimizations()功能从电池优化中排除它。如果该函数返回false,我使用REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限显示“电池优化设置”屏幕,用户需要将该应用添加到白名单。

当我从Android Studio运行应用程序时,这一切都非常有效。当我下载并安装候选版本时,麻烦就开始了。

请注意,我将描述的问题只发生在我的两部手机中。 问题发生在运行Android 7.0的夏普507SH上。在运行Android 7.0的索尼SOV32上也不会出现这个问题。

问题:

当我下载并安装候选版本(不使用Android Studio)并启动应用程序时,电池优化屏幕显示为正常。但是,该应用似乎已经在“未优化”白名单中列出了。通常,用户必须手动选择应用程序并添加它。但它出现在列表中。因此用户按下后退按钮返回应用程序,一切似乎都很好。 但是,该应用实际上并不在白名单中。每次应用启动时应用都会提示用户,即isIgnoringBatteryOptimizations()仍然返回false,这可以证实这一点。

我可以将应用添加到白名单“真实”,首先进入电池设置并将其从白名单中删除,然后再将其添加回白名单。然后提示就会消失。

2 个答案:

答案 0 :(得分:2)

我来晚了,但是我经历了与上述纸鸭类似的事情。

我无法100%证明这一点,但是我的经验表明,在模拟器和我自己的设备(华为P20 Lite)上进行测试(通过Android Studio安装该应用程序)时,该应用程序表示该应用程序位于“优化”列表中。在“优化”列表中添加或删除应用程序不会更改返回值。

答案 1 :(得分:0)

这可能是以前在Google Play以外的手机上安装APK的副作用(错误)。我们正在直接从Google云端硬盘下载并安装APK文件发布候选版。安装了以前的APK文件的手机遇到此问题。没有直接安装APK文件的手机没有遇到问题。

我们尚未证实这一点。这是我们的怀疑。