【发布时间】:2017-09-25 13:53:28
【问题描述】:
我正在使用following method 请求将我的应用列入白名单:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
String packageName = getApplicationContext().getPackageName();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
}
我还在清单中添加了权限:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
(是的,我知道此权限会让您在 Google Play 中被禁止。此代码仅用于测试目的)。
在 Android Oreo 中,会显示对话框,并且在用户接受它后,什么也不会发生。该应用程序未添加到白名单中。但是从那里调用 PackageManager.isIgnoringBatteryOptimizations 总是按预期返回 true。
这是一个错误还是他们在 Oreo 中删除了此功能?
【问题讨论】:
标签: android battery whitelist android-8.0-oreo