REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 触发但无提示
Posted
技术标签:
【中文标题】REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 触发但无提示【英文标题】:REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Firing but No Prompt 【发布时间】:2019-09-06 21:45:23 【问题描述】:我正在尝试在应用启动时在推送通知中使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
禁用 android 9 上的电池优化。
在活动文件中(使用通知生成器):
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
PendingIntent pendingIntent = PendingIntent.getActivity(getContext(), 0, intent, 0);
NotificationCompat.Builder...
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getContext());
notificationManager.notify(notificationId, builder.build());
在AndroidManifest.xml
:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
我可以显示推送通知,但是当您点击时,它就会消失。没有弹出“允许”的提示。我的设置有问题吗?
【问题讨论】:
检查 logcat。不要过滤它,否则你可能会错过一些重要的东西。您也可以尝试更改Intent
以打开其他不需要权限的应用程序,看看是否有效(只是为了缩小问题范围)
这仍然是 Google 推荐的权限吗?
【参考方案1】:
您在数据中缺少 Uri。来自documentation:
输入:Intent 的数据 URI 必须指定应用程序包名称 要显示,与“包”方案。即“package:com.my.app”。
执行以下操作:
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parseString("package:my.package.name");
【讨论】:
以上是关于REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 触发但无提示的主要内容,如果未能解决你的问题,请参考以下文章