2

我以编程方式实现了忽略电池优化功能。我发现了很多问题和答案,但我想知道IGNORE_BATTERY_OPTIMIZATIONS仅适用于纯 android 还是有其他情况?

我有几个设备如下所列:

  • 摩托 g4 (7.0)
  • 摩托游戏 (6.0)
  • 三星 Galaxy Note 4(6.0)
  • 小米笔记 4 (6.0)
  • 联想 Tab(6.0)
  • 荣誉 (6.0)

它在 Moto 设备中正常工作。

在 Moto 中,我们可以弹出窗口,如果我们接受许可,那么它运行良好。

它在联想标签和荣耀设备中的正确率是 50%。

  • 在联想选项卡中,当权限弹出出现时,如果我们接受权限,则添加应用程序,但是当我们手动更改设置时,它不起作用。
  • 好吧,在荣耀设备中,当我们获得权限弹出窗口并接受权限后,我们打开设置并检查其在不允许电池优化应用程序中列出的应用程序状态,但应用程序的状态是“允许电池优化”。之后,当我们手动允许它时,它将起作用。

在 MI 和三星设备中,它不再工作了。

好吧,小米设备是例外情况,因为它们有自己的定制架构,所以我们不关心小米设备。

对于三星 note 4,有一个特殊情况如下:

安装应用程序后,我们会弹出权限并接受权限。之后我们在设置中检查它,但该应用程序未列在“不允许电池优化”应用程序列表中。(注意:当设备重启时添加的应用不允许电池优化)

这是代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        msPackageName = getPackageName();
        moPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        Log.i(TAG, "Permission " + moPowerManager.isIgnoringBatteryOptimizations(msPackageName));

        if (!moPowerManager.isIgnoringBatteryOptimizations(msPackageName)) {
            Intent loIntent = new Intent();
            loIntent.setAction(android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            loIntent.setData(Uri.parse("package:" + msPackageName));
            startActivity(loIntent);

        } 
    }

请就这种不同的行为提出建议。如果有解决方案,请告诉我。它变得令人沮丧。

4

0 回答 0