当我的应用程序进行电池优化时,为啥我无法收到推送通知?
Posted
技术标签:
【中文标题】当我的应用程序进行电池优化时,为啥我无法收到推送通知?【英文标题】:Why am I not able to recive a push notification when my app is battery optimized?当我的应用程序进行电池优化时,为什么我无法收到推送通知? 【发布时间】:2019-05-15 17:33:04 【问题描述】:当我的应用进行电池优化时,我无法接收推送通知。是否有可能被 Google 列入白名单?
过去,我使用 Firebase 发送推送通知。我认为这是 Firebase 的问题,所以我尝试使用 OneSignal,但我遇到了同样的问题。我也以高优先级发送,但在优化电池时它不起作用。
是否有可能解决这个问题,还是用户禁用电池优化的唯一方法?
如果我使用此代码,我会被禁止进入 Play 商店吗?
if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1)
String pkg=getPackageName();
PowerManager pm=getSystemService(PowerManager.class);
if (!pm.isIgnoringBatteryOptimizations(pkg))
Intent i=
new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
.setData(Uri.parse("package:"+pkg));
startActivity(i);
【问题讨论】:
当the app is not in the working set 时,我只看到在 API 28 设备上延迟接收高优先级 FCM 消息。您在什么设备类型和 API 级别上观察到这种行为? 我使用的是带有 API 28 的 OnePlus 6T,但我在其他手机和不同的 API 上也遇到了这些问题。 你找到解决办法了吗?我也面临类似的问题! 不,我还没有找到解决办法。 【参考方案1】:很遗憾,这是一个已知问题。最近,大多数移动制造公司使用他们自己的 android 修改版本实际上停止了大多数(如果不是全部)在后台运行的服务以节省电池。据我所知,您只能做一件事,就是很好地提示用户将您的应用列入白名单,这样即使在省电模式下也可以毫无障碍地运行。
【讨论】:
好的,我用一些代码更新了这个问题。我应该用我发布的代码来做吗? 是的,如果这可行并且只是向用户提出请求,那么绝对可以!所有的力量给你! 我会尽快尝试。以上是关于当我的应用程序进行电池优化时,为啥我无法收到推送通知?的主要内容,如果未能解决你的问题,请参考以下文章
当我连接到我的 Wifi 时,在 Android 上没有收到推送通知