하나의 Android 6에서 DOZE를 전달해야하는 애플리케이션 하나를 테스트 중입니다. 사용자가 배터리 최적화 작업을 수락하도록 요청하고 싶습니다. 프로젝트 AntiDoze에서와 마찬가지로DOZE 모드 삼성 기기
,하지만 난 아무런 문제가없는 가상 장치에서 실행,하지만 난 삼성에 전달할 때 얻을 때
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