Android 当click_操作发送到尚未添加意图过滤器的应用程序的早期版本时,如何处理这种情况?

Android 当click_操作发送到尚未添加意图过滤器的应用程序的早期版本时,如何处理这种情况?,android,android-intent,firebase,push-notification,firebase-cloud-messaging,Android,Android Intent,Firebase,Push Notification,Firebase Cloud Messaging,你能帮我解决这个问题吗 任务是开发推送通知,用户点击该通知将打开特定活动 我已经添加了意图过滤器,并尝试使用click_操作字段发送推送消息,一切都像一个符咒 问题在于应用程序的早期版本尚未添加意图过滤器。如果用户点击推送消息(在以前的应用程序版本中),则不会发生任何事情 在这种情况下,做什么更好?如何处理这种情况 编辑: 因此,问题是,在点击操作字段中提到的特定屏幕以及缺少必要的意图过滤器的情况下,我们如何拥有默认行为(在最后一个屏幕上打开应用程序)?这与用户在清单文件中有以前版本的应用程序而

你能帮我解决这个问题吗

任务是开发推送通知,用户点击该通知将打开特定活动

我已经添加了意图过滤器,并尝试使用click_操作字段发送推送消息,一切都像一个符咒

问题在于应用程序的早期版本尚未添加意图过滤器。如果用户点击推送消息(在以前的应用程序版本中),则不会发生任何事情

在这种情况下,做什么更好?如何处理这种情况

编辑:


因此,问题是,在点击操作字段中提到的特定屏幕以及缺少必要的意图过滤器的情况下,我们如何拥有默认行为(在最后一个屏幕上打开应用程序)?这与用户在清单文件中有以前版本的应用程序而没有必要的意图过滤器的情况有关。

要在推送通知上执行某些操作,请单击我们需要为此编写代码以执行此类操作。在您的情况下,您希望在旧的live应用程序上执行一些操作,在这种情况下,您什么也做不了

要执行某些操作,可以在收到推送通知时调用此方法

private void sendNotification(String title, String messageBody) {
    Intent intent = new Intent(this, YourActivityName.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    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)
            .setContentTitle(title)
            .setContentText(messageBody)
            .setVibrate(new long[]{01})
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        notificationBuilder.setSmallIcon(R.mipmap.notification);
    else
        notificationBuilder.setSmallIcon(R.mipmap.notification);


    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(1, notificationBuilder.build());
}

要对推送通知执行某些操作,请单击,我们需要为此编写代码以执行此类操作。在您的情况下,您希望在旧的live应用程序上执行一些操作,在这种情况下,您什么也做不了

要执行某些操作,可以在收到推送通知时调用此方法

private void sendNotification(String title, String messageBody) {
    Intent intent = new Intent(this, YourActivityName.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    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)
            .setContentTitle(title)
            .setContentText(messageBody)
            .setVibrate(new long[]{01})
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        notificationBuilder.setSmallIcon(R.mipmap.notification);
    else
        notificationBuilder.setSmallIcon(R.mipmap.notification);


    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(1, notificationBuilder.build());
}

是的,这很清楚。但如何与以前版本的应用程序向后兼容,这是一个问题。例如,在以前的版本中,我希望应用程序能够像用户单击常用推送通知时通常发生的那样打开。感谢您的回答,但看起来您提供了显示本地通知的代码,对吗?但我说的是来自FireBase的通知。主要的问题是,如果应用程序先前版本的清单文件中没有特定的意图,我们如何启动默认的android.intent.action.main intent。所以,你认为这是不可能的,对吗?是的,这很清楚。但如何与以前版本的应用程序向后兼容,这是一个问题。例如,在以前的版本中,我希望应用程序能够像用户单击常用推送通知时通常发生的那样打开。感谢您的回答,但看起来您提供了显示本地通知的代码,对吗?但我说的是来自FireBase的通知。主要的问题是,如果应用程序先前版本的清单文件中没有特定的意图,我们如何启动默认的android.intent.action.main intent。所以,你认为这是不可能的,对吗?让用户更新到你的应用程序的新版本以查看“新功能”。我不会强迫用户安装我的应用程序的新版本,我假设部分用户将使用以前的版本。因此,问题是,在缺乏必要的意图过滤器的情况下,我们如何拥有默认行为(在最后一个屏幕上打开应用程序)让用户更新到您应用程序的较新版本以查看“新功能”。我不是在催促用户安装我应用程序的新版本,我假设部分用户将使用以前的版本。所以问题是,在缺少必要的意图过滤器的情况下,我们如何拥有默认行为(在最后一个屏幕上打开应用程序)