2016-06-27 10 views
5

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

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

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" /> 
+0

Я тестировал это с помощью пары различных эмуляторов (API 23, 25 и 26), и я получаю то же исключение. – hamalaiv

ответ

4

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

+0

Какое ближайшее намерение использовать, чтобы перейти к оптимизации батареи? Возможно, лучший отступ, чем просто перейти к настройкам ОС? –

+0

@androiddeveloper: Я понятия не имею, извините. – CommonsWare

+0

ОК спасибо за ответ –