Установите определенное приложение, чтобы игнорировать оптимизацию по коду в Android M

В новой версии Android M функция оптимизации батареи остановит приложение на определенных условиях, чтобы сэкономить аккумулятор, но для приложений VOIP которые должны постоянно оставаться в живых, эта функция вызывает проблемы для разработчика.

В настоящее время существует один способ обойти оптимизацию, при которой приложение игнорирует оптимизацию, но необходимо выполнить слишком много шагов.

Мой вопрос в том, есть ли способ перейти к игнорированию страницы оптимизации конкретного приложения, и как я могу узнать, исключено ли мое приложение из оптимизации?

ПРЕДУПРЕЖДЕНИЕ. Кажется, Google не разрешает приложениям в Play Store делать это. См. Комментарии ниже.

На основе AndroidManifest.xml, извлеченного из файла Settings.apk в сборке MPA44I, казалось бы, вы можете сделать то, что хотите, чем-то вроде намерения ниже.

Из XML:

 <intent android:action="android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" android:targetPackage="com.android.settings" android:data="package:PUT_YOUR_PACKAGE_NAME_HERE" /> 

Из кода:

 try { Intent intent = new Intent(android.provider.Settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:PUT_YOUR_PACKAGE_NAME_HERE")); startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace(); } 

Обратите внимание, что у меня не было времени, чтобы проверить это на практике, но подход такой же, как и в одном из моих приложений, для запуска меню настроек приложения. Тем не менее, я надеюсь, что это поможет.

В настоящее время нет возможности эффективно отказаться от оптимизации, так как это не влияет на режим доз – даже если ваше приложение включено в белый список.

См. Здесь: https://stackoverflow.com/a/31721398/4301846

И здесь: https://code.google.com/p/android-developer-preview/issues/detail?id=2225

Intereting Posts
Не найден идентификатор ресурса для android: elevation Mapbox GL с использованием внешних карт Могу ли я установить значок дома на панели действий с помощью styles.xml? Android потребляемый: «уже принадлежит этот элемент», но inventory.hasPurchase () – false Обратная или обратная совместимость в Android? Android-телефоны не открывают PDF-поток после обратной передачи на сайте ASP.Net Как получить долготу широты из более чем 500 адресов? Chrome для Android не отображает веб-сайты Google правильно Ошибка переключения FragmentActivity … «Несовместимые типы» или «FragmentTransaction не могут применяться» Не удалось прослушать состояние менеджера Android Wi-Fi? Android – создайте LinearLayout, который содержит прокручиваемый ListView Обнаружить нажатие кнопки дома в андроиде Как передать данные датчика в реальном времени Android на компьютер? Android: Как вернуть async JSONObject из метода с помощью Volley? Добавьте маркеры 1000 в android Googlemap