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