Sto testando un'applicazione in un Android 6 in cui ho bisogno di passare il DOZE, per questo voglio chiedere agli utenti di accettare l'igore di ottimizzazione della batteria.Modalità DOZE Dispositivo Samsung
Come nel progetto AntiDoze, ma quando corro in un dispositivo virtuale non ho alcun problema, ma quando passo per il Samsung ottengo:
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)
Qualsiasi idea di come superare questo problema?
Il codice importante dal link è:
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);
}
}
Nel manifesto ho
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
Ho provato questo con un paio di emulatori diversi (API 23, 25 e 26) e sto ottenendo la stessa eccezione. – hamalaiv