OnMesasageReceived FCM не вызывается, когда приложение находится в фоновом режиме? - PullRequest
1 голос
/ 02 апреля 2019

На самом деле, мое приложение должно звонить на мой телефон с удаленного сервера, поэтому я решил использовать облачные сообщения Firebase.Я написал медиаплеер для воспроизведения в течение 5 секунд, как показано ниже:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);

//if app is in foreground
  if (remoteMessage.getNotification().getBody().equalsIgnoreCase("deleteall"))
    {
          MediaPlayer player = MediaPlayer.create(this, R.raw.uniphone);

        player.start();
    }

//if app is in background
if(remoteMessage.getData().size() > 0)
    {
        MediaPlayer player = MediaPlayer.create(this, R.raw.uniphone);

        player.start();
}

    showNotification(remoteMessage.getNotification().getTitle(), remoteMessage.getNotification().getBody());

Этот код отлично работает, когда приложение находится на переднем плане, но это не работает, когда приложение находится в фоновом режиме или убиваетсостояние.

Я знаю, что onMessageReceived FCM не будет вызываться, когда приложение находится в фоновом режиме, вместо этого уведомления отображаются с помощью панели задач.

Когда я гуглил об этомпроблема, я столкнулся с решением, что мы должны отправить «сообщение данных» вместо «сообщения уведомления» с тем фактом, что сообщение данных может вызывать onMessageReceived из FCM.

Обратите внимание, что я также пыталсяизменив звук уведомлений в моем коде, а также в формате json веб-сервера, но ничего не работает.

мой json в качестве полезной нагрузки данных

{"to":"<my_fcm_token_here>",

"data": {

"somekey": "somevalue",
"somekey1": "somevalue1"
}
}

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

Или еще, есть ли альтернатива для моего приложения, чтобы звонить с удаленного сервера, отличного от FCM?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...