我正在开发一个应用程序,如果用户在附近,应该会提醒他。当然,即使手机处于空闲状态,也必须这样做。 现在使用DOZE,我明白我必须将我的应用程序列入白名单,为此我看到我可以启动一个具有请求动作的意图,感谢Buddy在此帖子中的回答。
Intent intent = new Intent();
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
}
context.startActivity(intent);
嗯,这应该很容易……因为谷歌不喜欢这种方法,如果你这样做,你的应用可能会被从Play商店中禁止……无话可说…… 好的,所以正确的方法是引导用户到电池设置中,并手动将你的应用添加到DOZE的白名单中……是的,这应该是一个难度较大的问题……无论如何,似乎这是唯一的方法……现在的答案是: 我可以使用一个意图跳转到电源使用概要页面,方法如下(感谢Chris):
Intent powerUsageIntent = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);
ResolveInfo resolveInfo = getPackageManager().resolveActivity(powerUsageIntent, 0);
// check that the Battery app exists on this device
if(resolveInfo != null){
startActivity(powerUsageIntent);
}
但如何直接进入应用列表来选择电池优化?
感谢任何答案。