背景:
我正在开发一款Android应用。当应用程序启动时,它会检查是否使用isIgnoringBatteryOptimizations()
功能从电池优化中排除它。如果该函数返回false,我使用REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
权限显示“电池优化设置”屏幕,用户需要将该应用添加到白名单。
当我从Android Studio运行应用程序时,这一切都非常有效。当我下载并安装候选版本时,麻烦就开始了。
请注意,我将描述的问题只发生在我的两部手机中。 问题发生在运行Android 7.0的夏普507SH上。在运行Android 7.0的索尼SOV32上也不会出现这个问题。
问题:
当我下载并安装候选版本(不使用Android Studio)并启动应用程序时,电池优化屏幕显示为正常。但是,该应用似乎已经在“未优化”白名单中列出了。通常,用户必须手动选择应用程序并添加它。但它出现在列表中。因此用户按下后退按钮返回应用程序,一切似乎都很好。 但是,该应用实际上并不在白名单中。每次应用启动时应用都会提示用户,即isIgnoringBatteryOptimizations()
仍然返回false,这可以证实这一点。
我可以将应用添加到白名单“真实”,首先进入电池设置并将其从白名单中删除,然后再将其添加回白名单。然后提示就会消失。
答案 0 :(得分:2)
我来晚了,但是我经历了与上述纸鸭类似的事情。
我无法100%证明这一点,但是我的经验表明,在模拟器和我自己的设备(华为P20 Lite)上进行测试(通过Android Studio安装该应用程序)时,该应用程序表示该应用程序位于“优化”列表中。在“优化”列表中添加或删除应用程序不会更改返回值。
答案 1 :(得分:0)
这可能是以前在Google Play以外的手机上安装APK的副作用(错误)。我们正在直接从Google云端硬盘下载并安装APK文件发布候选版。安装了以前的APK文件的手机遇到此问题。没有直接安装APK文件的手机没有遇到问题。
我们尚未证实这一点。这是我们的怀疑。