При получении push уведомления, отправлять данные на сервер
Я использую FCM для получения уведомлений. При получении уведомления, устройство должно отправить данные на сервер. Если устройство не заблокировано, то есть включен экран и т д. Данные отправляются, если его заблокировать, то приходит просто звуковое оповещение и всё. При вызове onMessageReceived вызываю Log.d. Но если устройство заблокировано, то log даже не отображается. И естественно никакие данные на сервер не отправляются. Устройство xiaomi. На самсунге всё ок. Погуглил, и увидел что я не один такой. Есть ли сегодня способ борьбы с китайскими устройствами, и их агрессивными оболочками?
Ответы (1 шт):
Отправляйте уведомление с блоком Data, а не Notification, тогда вы обработаете в методе данные, после этого запустите workmanager с задачей разовой, чтобы выполнить её и в ней передайте данные на сервер. С китайскими девайсами нужно быть осторожнее, у них свои костыли, которые могут грохать работу в бэкграунде. Поэтому поищите на тему отключения оптимизации бэкграунд работы на xiaomi устройствах, там есть такое