2016-06-27 23 views
5

Bir uygulamayı test ettiğim bir Android 6'da DOZE'yi geçmem gerekiyor, bunun için kullanıcıların pil optimizasyonunun igore değerini kabul etmelerini istiyorum. Projenin AntiDoze olduğu gibiDOZE modu Samsung cihazı

, ama herhangi bir sorun yok sanal cihazda çalışacak ama Samsung geçmek zaman olsun:

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) 

herhangi bir fikir nasıl bu sorunu geçmek?

bağlantısından önemli kodudur: tezahür olarak

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); 
    } 
} 

Ben

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

Bunu birkaç farklı emülatörle (API 23, 25 ve 26) test ettim ve aynı istisnayı alıyorum. – hamalaiv

cevap

4

Yakalama ActivityNotFoundException ve Ayarlar gitmelerini isteyen kullanıcıya kendi kullanıcı arayüzünü görüntülemek uygulamasını indirin ve uygulamanızı pil optimizasyonu beyaz listesine ekleyin. Dokümanlar bu Intent eylemi için özellikle bunu söylemezken, Settings.ACTION_* değerlerinin çoğunun "Bazı durumlarda, eşleşen bir Etkinlik bulunmayabilir, bu yüzden bunu korumanızı sağlayın" ifadesini kullanır.

+0

Pil optimizasyonuna gitmek için kullanılacak en yakın niyet nedir? İşletim sisteminin ayarlarına gitmekten daha iyi bir geri dönüş var mı? –

+0

@androiddeveloper: Hiçbir fikrim yok üzgünüm. – CommonsWare

+0

tamam cevaplama için teşekkürler –