Режим DOZE Устройство Samsung

Я тестирую одно приложение на одном Android 6, где мне нужно пройти DOZE, для этого я хочу попросить пользователей принять игоре оптимизации батареи.

Как в проекте AntiDoze, но когда я запускаю в виртуальном устройстве У меня проблем нет, но при переходе на самсунг получаю:

FATAL EXCEPTION: main
         Process: com.commonsware.android.antidoze, PID: 21135
       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.commonsware.android.antidoze/com.commonsware.android.antidoze.EventDemoActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS dat=package:com.commonsware.android.antidoze }
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
      at android.app.ActivityThread.access$1100(ActivityThread.java:221)

Любая идея, как пройти эту проблему?

Код, важный из ссылки:

if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1) {
  String pkg=getPackageName();
  PowerManager pm=getSystemService(PowerManager.class);

  if (!pm.isIgnoringBatteryOptimizations(pkg)) {
    Intent i=
      new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
        .setData(Uri.parse("package:"+pkg));

    startActivity(i);
  }
}

В манифесте у меня есть

 <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

person JMR    schedule 27.06.2016    source источник
comment
Я проверил это с несколькими разными эмуляторами (API 23, 25 и 26), и я получаю то же исключение.   -  person hamalaiv    schedule 04.10.2017


Ответы (1)


Поймайте ActivityNotFoundException и покажите пользователю свой собственный пользовательский интерфейс, попросив его перейти в приложение «Настройки» и добавить ваше приложение в белый список оптимизации батареи. Хотя в документах не говорится об этом конкретно для этого действия Intent, в большинстве значений Settings.ACTION_* упоминается: «В некоторых случаях соответствующее действие может не существовать, поэтому убедитесь, что вы защищены от этого».

person CommonsWare    schedule 27.06.2016
comment
Какой самый близкий намерение использовать, чтобы перейти к оптимизации батареи? Возможно, есть лучший запасной вариант, чем просто перейти к настройкам ОС? - person android developer; 17.09.2017
comment
@androiddeveloper: понятия не имею, извините. - person CommonsWare; 17.09.2017