【问题标题】: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 上也遇到了这些问题。
  • 你找到解决办法了吗?我也面临类似的问题!
  • 不,我还没有找到解决办法。

标签: android firebase push-notification onesignal


【解决方案1】:

很遗憾,这是一个已知问题。最近,大多数移动制造公司使用他们自己的 Android 修改版本实际上停止了大多数(如果不是全部)在后台运行的服务以节省电池。据我所知,您只能做一件事,就是很好地提示用户将您的应用列入白名单,这样即使在省电模式下也可以毫无障碍地运行。

【讨论】:

  • 好的,我用一些代码更新了这个问题。我应该用我发布的代码来做吗?
  • 是的,如果这可行并且只是向用户提出请求,那么绝对可以!所有的力量给你!
  • 我会尽快尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
相关资源
最近更新 更多