Я работаю над приложением, в котором одна из служб должна работать всегда, чтобы выполнять определенную операцию в фоновом режиме. Поэтому я перезапускаю службу с помощью широковещательного приемника всякий раз, когда его убивают из диспетчера задач. Поэтому для этого я беру у пользователя разрешение на автозапуск / оптимизацию батареи, чтобы снова перезапустить его.
Этот подход отлично работает почти со всеми ведущими производителями устройств, кроме ColorOS, и пока для моего приложения включено разрешение «Автозапуск/оптимизация батареи», оно отлично работает на всех остальных устройствах. разве что на ColorOS.
Причина этого в том, что я не могу перенаправить пользователя на страницу настроек «Автозапуск» или «Оптимизация батареи».
Я попытался открыть действие настроек автозапуска из своего приложения, используя этот код:
Intent autostartIntent = new Intent();
autostartIntent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
startActivity(autostartIntent);
Также я попытался поиграть с настройками энергосбережения вручную, чтобы проверить, работает ли это в любом случае. Но, кажется, все равно ничего не работает.
Я бы искал способ перенаправить пользователя на страницу разрешений автозапуска или на страницу настроек оптимизации батареи. Любой, кто имел дело с подобной проблемой, может предложить какое-то решение или даже обходные пути для того же самого.