Как определить, открывается ли приложение через уведомление pu sh? - PullRequest
0 голосов
/ 14 июля 2020

Меня интересовало, как определить, было ли мое приложение открыто из уведомления pu sh, созданного системой Android.

Поскольку некоторые уведомления pu sh создаются нашей реализацией FirebaseMessagingService, другие автоматически создаются системой. Если в первом случае в момент открытия приложения из уведомления pu sh - все ясно, мы можем обнаружить это по дополнительным функциям при намерении, которое мы поместили в FirebaseMessagingService, во втором случае у меня были проблемы, потому что это намерение было создано системой.

Я пробовал второй метод из этой статьи https://www.quora.com/How-is-it-possible-to-track-whether-an-application-was-opened-by-clicking-on-a-Push-Notification-Android#: ~: text = Android, но не удалось.

Тем не менее Я заметил, что в намерениях extra "from" не было поставлено значение "notification", но был мой gcm_defaultSenderId Я отслеживаю его таким образом:

Bundle intentExtras = getIntent().getExtras();
if (intentExtras != null && !intentExtras.isEmpty()) {
    String intentSource = intentExtras.getString("from", "none");
    if (intentSource.equalsIgnoreCase(getString(R.string.gcm_defaultSenderId))) {
        trackAppOpenedFromPush();
    }
}

Он работает нормально, но я` м не уверен, что это хорошая практика. Есть у кого-нибудь мысли?

...