【发布时间】:2017-05-26 13:50:04
【问题描述】:
我正在开发一个应用程序,如果在某个地方附近,它会提醒用户。 当然,如果手机处于空闲状态,也必须这样做。 现在有了 DOZE,我明白我必须将我的应用程序列入白名单,为此我看到我可以通过操作请求开始一个意图,这要感谢 Buddy 在this post 中的回答
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 的白名单中......是的,这应该是一堵要爬的大墙......无论如何似乎是唯一的方法......现在答案是: 我可以通过这种方式 (thank you 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);
}
但是如何直接进入应用列表选择电池优化呢?
感谢您的任何回答。
【问题讨论】:
-
据我了解,操作 Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 是您所需要的
-
嗨 Grimmy,小心它,因为我写过 google 不喜欢这种方法,如果你这样做了,你的应用程序应该被禁止进入 Play 商店...阅读此消息:@987654323 @
-
根据该线程,如果您的应用请求 android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限,Google 可以禁止您的应用。但是 Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 操作不需要它,它将显示用于选择电池优化的应用列表
-
所以你说如果我不将请求放入清单文件中,谷歌就可以了吗?
-
这是你发给我的帖子里提到的
标签: android android-intent optimization battery