Приложение для Android не отображает уведомление Azure Notification Hub на переднем плане

avatar
Sach K
8 августа 2021 в 21:57
277
1
0

У меня правильно настроен Notification Hub с FCM и моим приложением для Android. Проблема в том, что когда мое приложение находится на переднем плане, уведомление никогда не отображается, но отладчик улавливает OnPushNotificationReceived, поэтому я знаю, что установка работает. Также, когда приложение находится в фоновом режиме или не работает, всплывает уведомление. Я думаю, что это связано с кодом, который я получил: https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-push-notifications-android-gcm

Вот мой код:

public void OnPushNotificationReceived(Context context, INotificationMessage message)
    {
        var intent = new Intent(context, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.OneShot);

        var notificationBuilder = new NotificationCompat.Builder(context, MainActivity.CHANNEL_ID);

        notificationBuilder.SetContentTitle(message.Title)
                    .SetSmallIcon(Resource.Drawable.ic_launcher)
                    .SetContentText(message.Body)
                    .SetAutoCancel(true)
                    .SetShowWhen(false)
                    .SetContentIntent(pendingIntent);

        var notificationManager = NotificationManager.FromContext(context);

        notificationManager.Notify(0, notificationBuilder.Build());
    }

Будем очень признательны за любую помощь

Источник
Leo Zhu - MSFT
9 августа 2021 в 07:40
0

Я тестирую его с вашим кодом выше, он может работать успешно. Не могли бы вы привести пример, который может воспроизвести проблему?

Sach K
9 августа 2021 в 08:48
0

Его трудно воспроизвести, не копируя всю установку. Можете ли вы подтвердить, что видите уведомление, когда ваше приложение находится на переднем плане?

Leo Zhu - MSFT
9 августа 2021 в 08:49
0

Да, я мог видеть, что приходит уведомление, и маленький значок отображается в строке состояния.

Ответы (1)

avatar
Sach K
9 августа 2021 в 12:18
2

Я обнаружил, что проблема в том, что не существует NotificationChannel, поэтому я создал его в конструкторе:

    public AzureListener()
    {
        var channel = new NotificationChannel(MainActivity.CHANNEL_ID, "General", NotificationImportance.Default);
        var notificationManager = NotificationManager.FromContext(Application.Context);
        notificationManager.CreateNotificationChannel(channel);
    }

Это заработало после того, как я добавил это.

Pat Long - Munkii Yebee
18 февраля 2022 в 17:48
0

Просто проверяю. Вы в основном создаете локальное уведомление, когда получаете push-уведомление, а затем полагаетесь на него для отображения уведомления, когда приложение находится на переднем плане?