Как исправить FirebaseNotifications

#android #push-notification #firebase-cloud-messaging #build.gradle #android-push-notification

#Android #push-уведомление #firebase-облако-обмен сообщениями #build.gradle #android-push-уведомление

Вопрос:

Я правильно внедрил уведомления о пожарной базе, некоторые устройства не получают уведомления vivo, infocus во время работы в фоновом режиме, как решить эту проблему

  public void getNotification(String icon,String title,String body){
      remoteViews = new RemoteViews(getPackageName(),R.layout.custom_notification_big);
      remoteView  = new RemoteViews(getPackageName(),R.layout.custom_notification_small);
      //Bitmap bitmap = SetImage(remote.getIcon()) ;
      Intent intent = new Intent(this, MainActivity.class);
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      PendingIntent pendingIntent = PendingIntent.getActivity(this, 1410, intent, PendingIntent.FLAG_ONE_SHOT);
      NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      if(icon!=null amp;amp; !icon.isEmpty()){
        remoteViews.setImageViewBitmap(R.id.image_pic,bitmap);
      }else{

      }
      if(title != null amp;amp; !title.isEmpty()){
          remoteViews.setTextViewText(R.id.title,title);
      }
      if(body != null amp;amp; !body.isEmpty()){
          remoteViews.setTextViewText(R.id.text,body);
      }
      NotificationCompat.Builder notificationBuilder1 = new NotificationCompat.Builder(getApplicationContext())
              .setStyle(new NotificationCompat.DecoratedCustomViewStyle())
              .setCustomContentView(remoteView)
              .setCustomBigContentView(remoteViews)
              .setContentTitle("Notification")
              .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
              .setContentIntent(pendingIntent)
              .setAutoCancel(true)
              .setPriority(Notification.PRIORITY_MAX)
              .setDefaults(Notification.DEFAULT_VIBRATE);

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
      {
          notificationBuilder1.setSmallIcon(R.mipmap.ic_launcher);
      } else
      {
          notificationBuilder1.setSmallIcon(R.mipmap.ic_launcher);

      }
      notificationManager.notify(100, notificationBuilder1.build());

  }
  

Ответ №1:

Для этого вам нужно добавить канал

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            notificationManager.createNotificationChannel(
                NotificationChannel(
                    "YOUR_ID",
                    "YOUR_NAME",
                    NotificationManager.IMPORTANCE_HIGH
                )
            )
        }
  

Ответ №2:

Уведомление не получено!

Чтобы заставить firebase вызывать ваш onMessageReceived() в следующих случаях

1) Приложение на переднем плане 2) Приложение в фоновом режиме 3) Приложение было убито

вы не должны помещать ключ JSON ‘notification’ в свой запрос / InApp к firebase API, а вместо этого использовать ‘data’.

Вы можете следовать документу.
https://firebase.google.com/docs/cloud-messaging/concept-options#notifications