打瞌睡模式三星设备
DOZE mode Samsung device
我正在测试一个应用程序 Android 6 我需要通过 DOZE,为此我想请求用户接受电池优化的忽略。
与项目一样
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.access00(ActivityThread.java:221)
知道如何解决这个问题吗?
来自 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);
}
}
在我的清单中
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
捕捉 ActivityNotFoundException
并向用户显示您自己的 UI,要求他们转到“设置”应用并将您的应用添加到电池优化白名单。虽然文档没有专门针对此 Intent
操作说明这一点,但大多数 Settings.ACTION_*
值都提到了 "In some cases, a matching Activity may not exist, so ensure you safeguard against this".
我正在测试一个应用程序 Android 6 我需要通过 DOZE,为此我想请求用户接受电池优化的忽略。
与项目一样 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.access00(ActivityThread.java:221)
知道如何解决这个问题吗?
来自 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);
}
}
在我的清单中
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
捕捉 ActivityNotFoundException
并向用户显示您自己的 UI,要求他们转到“设置”应用并将您的应用添加到电池优化白名单。虽然文档没有专门针对此 Intent
操作说明这一点,但大多数 Settings.ACTION_*
值都提到了 "In some cases, a matching Activity may not exist, so ensure you safeguard against this".