1

Не могли бы вы помочь мне решить проблему?Как обрабатывать случай, когда click_action был отправлен в предыдущую версию приложения, где фильтр намерения еще не был добавлен?

Задача состоит в том, чтобы создать push-уведомление, которое откроет конкретную активность пользователей.

Я добавил фильтр намерений и попытался отправить push-сообщение с помощью поля click_action, и все работает как шарм.

Проблема с предыдущей версией приложения, где Intent-filter еще не был добавлен. Если пользователь нажимает push-сообщение (в случае предыдущей версии приложения), ничего не происходит.

Что лучше делать в этом случае? Как обращаться с такими ситуациями?

Edit:

Таким образом, вопрос в том, как мы можем иметь поведение по умолчанию (открытие приложения на последнем экране) в случае конкретного экрана, указанного в поле click_action и недоставало необходимого намерения фильтра? Это относится к ситуации, когда пользователь имеет предыдущую версию приложения без необходимого фильтра намерения в файле манифеста.

+0

Попросите пользователей обновить до более новой версии приложения, чтобы увидеть «* новые функции *». –

+0

Я не подталкиваю пользователей к установке новой версии моего приложения, и я предполагаю, что часть пользователей будет использовать предыдущую версию. Итак, вопрос в том, как мы можем иметь поведение по умолчанию (открытие приложения на последнем экране) в случае отсутствия необходимого фильтра намерения – Val

ответ

0

Чтобы выполнить какое-либо действие при нажатии push-уведомления, нам нужно написать код для этого действия. В вашем случае вы хотите выполнить некоторые действия в своем старом live-приложении, в этом вы ничего не можете сделать.

Для выполнения некоторых действий вы можете вызвать этот метод Push уведомление получил

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()); 
} 
+0

Да, это понятно. Но как иметь обратную совместимость с предыдущими версиями приложения, это вопрос. Например, в случае предыдущей версии я хочу, чтобы приложение просто открывалось, как обычно, если пользователь нажимает на обычное push-уведомление. – Val

+0

Спасибо за ваш ответ, но похоже, что вы предоставили код, который показывает местное уведомление, правильно? Но я говорю об уведомлении, поступившем от FireBase. И главный вопрос заключается в том, как мы можем запустить по умолчанию android.intent.action.MAIN намерение в случае, если в файле манифеста предыдущей версии приложения нет конкретного намерения. Итак, вы думаете, что это невозможно, не так ли? – Val

 Смежные вопросы

  • Нет связанных вопросов^_^