1

背景:

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

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

请注意,我将描述的问题仅发生在我的两部手机中的一部上。该问题发生在运行 Android 7.0 的 Sharp 507SH 上。在同样运行 Android 7.0 的 Sony SOV32 上不会发生此问题。

问题:

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

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

4

2 回答 2

2

我谈话迟到了,但我经历过类似于上面paperduck所说的事情。

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

于 2020-01-30T16:12:02.690 回答
1

这可能是之前在 Google Play 以外的手机上安装 APK 的副作用(错误)。我们正在直接从 Google Drive 下载和安装 APK 文件候选版本。安装了以前的 APK 文件的手机会遇到此问题。之前没有直接安装APK文件的手机没有遇到这个问题。

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

于 2017-10-19T11:13:25.967 回答