Почему я не могу получить push-уведомление, когда мое приложение оптимизировано для батареи? - PullRequest
1 голос
/ 15 мая 2019

Когда мое приложение оптимизировано для батареи, я не могу получать push-уведомления. Есть ли возможность попасть в белый список от Google?

В прошлом я использовал Firebase для отправки своих Push-уведомлений. Я подумал, что это проблема с Firebase, поэтому я попытался с OneSignal, но у меня возникла та же проблема. Я также отправляю с высоким приоритетом, но он не работает, когда батарея оптимизирована.

Есть ли возможность решить эту проблему или это единственный способ отключить оптимизацию батареи пользователем?

Буду ли я забанен в Play Store, если буду использовать этот код?

    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);
  }
}

1 Ответ

0 голосов
/ 15 мая 2019

К сожалению, это известная проблема. В последнее время большинство мобильных компаний-производителей с помощью своих собственных модифицированных версий Android фактически останавливают большинство, если не все, сервисы, работающие в фоновом режиме, для экономии заряда батареи. Насколько я могу судить, есть только одна вещь, которую вы можете сделать, это приятно предложить пользователю внести в белый список ваше приложение, чтобы оно могло работать без каких-либо препятствий даже в режиме энергосбережения.

...