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