Geo*_*cks 5 android android-doze
我的意思不是什么都没有发生。弹出对话框:
“让应用始终在后台运行?允许/拒绝
但是,如果我进入设置、应用、电池优化,我的应用仍设置为“优化电池使用”。然后我可以手动将其切换为“不优化”,但根据此处的文档和所有其他问题,使用 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 意图并单击“允许”应该会更改此设置。
我正在使用:
此外,这个应用程序是用于研究的,不会在商店上架,所以我不担心 Play 商店的政策。
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent();
String packageName = getPackageName();
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的代码。它启动,弹出一个对话框“让应用程序始终在后台运行?” 我按允许。
我的问题是按下“允许”实际上是做什么的,因为如果您随后进入应用程序设置并查看电池优化,设置会显示该应用程序仍在“优化电池使用”。
所以看起来上面的意图,按下允许,实际上并没有做任何事情。
我将您的代码放入废料项目中,将权限添加android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS到清单中,在 Google Pixel (Android 9.0) 上运行它,一切都按预期运行。无需重新启动。
所以,要么:
您的问题仅出现在 Android 8.1 或更旧的设备上,反映了他们在 9.0 中修复的平台错误,或者
您的问题与某些制造商的某些设备有关
我的猜测是后者,但您需要进行更广泛的测试才能确定这一点。
| 归档时间: |
|
| 查看次数: |
5173 次 |
| 最近记录: |