Ниже приведен код службы сообщений.
public class FireBaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
private static int count = 0;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Displaying data in log
//It is optional
Log.d(TAG, "Notification Message TITLE: " +
remoteMessage.getNotification().getTitle());
Log.d(TAG, "Notification Message BODY: " +
remoteMessage.getNotification().getBody());
Log.d(TAG, "Notification Message DATA: " +
remoteMessage.getData().toString());
sendNotification(remoteMessage.getNotification().getTitle(),
remoteMessage.getNotification().getBody(),
remoteMessage.getData());
}
//This method is only generating push notification
private void sendNotification(String messageTitle, String messageBody,
Map<String, String> row) {
// PendingIntent contentIntent = null;
PendingIntent contentIntent =
PendingIntent.getActivity(this, 0, new Intent(this,
LoginActivity.class), 0);
Uri defaultSoundUri =
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new
NotificationCompat.Builder(this)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher_foreground))
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle(messageTitle)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(contentIntent);
NotificationManager notificationManager =
(NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(count, notificationBuilder.build());
count++;
}
}
Я новичок в программировании, поэтому, пожалуйста, игнорируйте ошибки. Также в приведенном выше коде он не уведомляет, когда приложение находится на переднем плане. Так что естьдва запроса, один из которых состоит в том, что при нажатии на уведомление оно не вызывает LoginActivity, а другое - приложение не уведомляет, когда находится на переднем плане.