开启服务后,如何强制应用选择退出省电模式?

时间:2018-11-02 09:00:44

标签: java android xiaomi battery-saver

预期的行为是,该应用在处于ON状态时将一直运行。当应用程序一段时间未激活时,某些手机会将其置于后台模式。我希望该应用程序即使在待机模式下也始终运行(待机模式意味着当我们按下主屏幕按钮时,该应用程序将进入后台运行一段时间。)

我找到了以下代码,并尝试了

    PowerManager powerManager = (PowerManager) getApplicationContext().getSystemService(POWER_SERVICE);
    String packageName = "org.traccar.client";
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        Intent i = new Intent();
        if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
            i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            i.setData(Uri.parse("package:" + packageName));
            startActivity(i);
        }
        else{
            i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            i.setData(Uri.parse("package:" + packageName));
            startActivity(i);

        }
    }

即使使用该代码后,默认状态也为省电模式(推荐)

打开应用后,我希望该应用处于无限制模式,对此有什么解决办法?

1 个答案:

答案 0 :(得分:0)

您使用的代码用于电池优化。设置->电池->三点菜单项(...)--->电池优化->(从列表中选择一个应用程序)--->优化/不优化。

通过选择Don't optimize,您实际上是在绕过Doze,而不是app standby

还请注意,按照编程方式进行操作可能会导致Google退出您的应用。按照我上述的路径手动进行操作比较安全。

有关Doze和应用Standby here的更多信息