我正在实现一个功能,要求用户忽略应用的电池优化。这样做的原因是,应用程序的主要功能受到节能模式的严重影响。
为了达到我的目标,我通过创建一个 Intent 并将 Action 设置为 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 来提示用户。
不过,在触发 Intent 之前,我会检查 isPowerSaveMode() 和 isIgnoringBatteryOptimizations(),以确保在未启用节能模式时不提示用户;这是该功能的要求。我检查的方式是:
这对大多数设备都有效,但对于华为设备,
是否有其他人可能遇到了这个问题?如果是,你是如何解决的?
请注意,
为了达到我的目标,我通过创建一个 Intent 并将 Action 设置为 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 来提示用户。
不过,在触发 Intent 之前,我会检查 isPowerSaveMode() 和 isIgnoringBatteryOptimizations(),以确保在未启用节能模式时不提示用户;这是该功能的要求。我检查的方式是:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isPowerSaveMode = pm.isPowerSaveMode(); // always returns false for Huawei devices
这对大多数设备都有效,但对于华为设备,
isPowerSaveMode()
总是返回false
。因此,由于前提条件失败,提示永远不会显示。是否有其他人可能遇到了这个问题?如果是,你是如何解决的?
请注意,
Xamarin.Android
SDK中也存在同样的问题。
isPowerSaveMode()
时也会返回“false”。我的想法是,与其他制造商(如三星)相比,该标志以不同的方式公开。但这只是一种理论。 - Demitrian