【发布时间】:2017-10-16 03:05:22
【问题描述】:
背景:
我正在开发一个 Android 应用程序。当应用程序启动时,它会使用isIgnoringBatteryOptimizations() 函数检查它是否被排除在电池优化之外。如果该函数返回 false,我将使用 REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限显示电池优化设置屏幕,用户应在其中将应用添加到白名单。
当我从 Android Studio 运行应用程序时,这一切都运行良好。当我下载并安装候选版本时,麻烦就开始了。
请注意,我将描述的问题仅发生在我的两部手机中的一部上。 问题发生在运行 Android 7.0 的 Sharp 507SH 上。在同样运行 Android 7.0 的 Sony SOV32 上不会出现此问题。
问题:
当我下载并安装候选版本(不使用 Android Studio)并启动应用程序时,电池优化屏幕正常显示。但是,该应用程序似乎已立即列在“未优化”白名单中。通常,用户必须手动选择应用程序并添加它。但它出现在列表中。所以用户按下后退按钮返回应用程序,一切似乎都很好。 但是,该应用实际上并没有在白名单中。 应用每次启动时都会提示用户这一事实证实了这一点,即isIgnoringBatteryOptimizations() 仍然返回 false。
我可以“真正地”将应用添加到白名单,方法是首先进入电池设置并将其从白名单中删除,然后再将其添加回来。然后提示就会消失。
【问题讨论】:
标签: android android-doze battery-saver