Android) I would like to change the activities that are executed according to the type of Firebase push message.

Asked 2 years ago, Updated 2 years ago, 71 views

Hello, I have a question while using the Firebase push message function.

I'm currently creating a community app

By the way, each push message has a different content, but all the contents are transferred to LoginActivity.

By any chance,

I tried to override the method, but I can't execute the overridden method... The execution code is as follows:

Thank you.

private void sendNotification(String title, String text) {

 // Create channel - from skd 26?
    // // todo
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        // If you press a push message, go to the login activity.
        Intent intent = new Intent(this, LoginActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_share_black_24dp)
                        .setContentTitle(title)
                        .setContentText(text)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setVibrate(new long[]{100, 200, 100, 200})
                        .setPriority(Notification.PRIORITY_HIGH)
                        // Apply Channel
                        .setChannelId(ChannerId)
                        .setContentIntent(pendingIntent);

        // Apply Channel
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationChannel notificationChannel
                = = new NotificationChannel(ChannerId, "ChattingApp", NotificationManager.IMPORTANCE_DEFAULT);
        notificationChannel.setDescription ("Service Strategic Management Association (SSMA).");
        notificationChannel.enableLights(true);
        notificationChannel.setLightColor(Color.GREEN);
        notificationChannel.enableVibration(true);
        notificationChannel.setVibrationPattern(new long[]{100, 200, 100, 200});
        notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);

        if (notificationManager != null) {
            notificationManager.createNotificationChannel(notificationChannel);
        }

        if (notificationManager != null) {
            notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
        }
    }

    // Create Channel - < 26
    else {
        // If you press a push message, proceed to the login activity.
        // // todo
        Intent intent = new Intent(this, LoginActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_share_black_24dp)
                        .setContentTitle(title)
                        .setContentText(text)
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setVibrate(new long[]{100, 200, 100, 200})
                        .setPriority(Notification.PRIORITY_HIGH)
                        // Apply Channel
                        // // .setChannelId(ChannerId)
                        .setContentIntent(pendingIntent);

        // Apply Channel
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
    }
}

android actvitiy push sendgcm

2022-09-22 19:21

1 Answers

I solved it. It would be helpful if there are people who have the same difficulties.

You can hand over the values in the method that sends the push message, and modify the onMessageReceived() code.

public void onMessageReceived(RemoteMessage remoteMessage) {
    if (remoteMessage.getData().size() > 0) {
        String title = remoteMessage.getData().get("title");
        String text = remoteMessage.getData().get("text");
        String caseNumber = remoteMessage.getData().get("caseNumber");
        String index = remoteMessage.getData().get("index");

        // Drop it to 1:1 chat room.
        if (caseNumber.equals("0")) {
            sendNotification0(title, text, index);
        }

        // 1: Drop them into the chat room.
        if (caseNumber.equals("1")) {
            sendNotification1(title, text, index);
        }

        // Drop it to the bulletin board.
        if (caseNumber.equals("2")) {
            sendNotification2(title, text);
        }
    }
}


2022-09-22 19:21

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.