私はDOZEを渡す必要がある1つのAndroid 6で1つのアプリケーションをテストしています。ユーザーにバッテリ最適化のigoreを受け入れるよう要求したいと思っています。DOZEモードSamsungデバイス
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" />
私はこれを複数の異なるエミュレータ(API 23,25,26)でテストしましたが、同じ例外が発生しています。 – hamalaiv