ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 什么都不做
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS does nothing
我不是说什么都没发生。弹出对话框:
“让应用程序始终 运行 在后台?
允许/拒绝
但是如果我进入设置、应用程序、电池优化,我的应用程序仍然设置为 "Optimizing Battery use"。然后我可以手动将其切换到 "Don't Optimize",但根据此处的文档和所有其他问题,使用 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);
}
}
我正在使用上面的代码。它触发,弹出一个对话框 "Let app always run in background?" 我按允许。
我的问题是按 "Allow" 实际上做了什么,因为如果您随后进入应用程序设置,并查看电池优化,设置显示应用程序仍然是 "Optimizing Battery Usage"。
所以它会出现上述意图,并按允许,实际上并没有做任何事情。
我把你的代码放在一个废弃项目中,向清单添加了 android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
权限,运行 它在 Google 像素(Android 9.0)上,并且一切都按预期进行。无需重启。
所以,要么:
您的问题仅出现在 Android 8.1 或更旧的设备上,反映了他们在 9.0 中修复的平台错误,或者
您的问题与某些制造商的某些设备有关
我猜是后者,但您需要进行更广泛的测试才能确定。
我不是说什么都没发生。弹出对话框:
“让应用程序始终 运行 在后台? 允许/拒绝
但是如果我进入设置、应用程序、电池优化,我的应用程序仍然设置为 "Optimizing Battery use"。然后我可以手动将其切换到 "Don't Optimize",但根据此处的文档和所有其他问题,使用 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);
}
}
我正在使用上面的代码。它触发,弹出一个对话框 "Let app always run in background?" 我按允许。
我的问题是按 "Allow" 实际上做了什么,因为如果您随后进入应用程序设置,并查看电池优化,设置显示应用程序仍然是 "Optimizing Battery Usage"。
所以它会出现上述意图,并按允许,实际上并没有做任何事情。
我把你的代码放在一个废弃项目中,向清单添加了 android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
权限,运行 它在 Google 像素(Android 9.0)上,并且一切都按预期进行。无需重启。
所以,要么:
您的问题仅出现在 Android 8.1 或更旧的设备上,反映了他们在 9.0 中修复的平台错误,或者
您的问题与某些制造商的某些设备有关
我猜是后者,但您需要进行更广泛的测试才能确定。