Notification not displaying on android device. (Azure notification hub)

I'm trying do send a push notification to my android emulator. When the notification is sent, it receives the notification but does not display it.

I'm using this code to display it.

void SendNotification(string messageBody)
    {
        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                                                                .SetContentTitle("FCM Message")
                                                                .SetSmallIcon(Resource.Drawable.icon)
                                                                .SetContentText(messageBody)
                                                                .SetChannelId("my-chanel")
                                                                .SetAutoCancel(true)
                                                                .SetContentIntent(pendingIntent)
                                                                .SetSound(); 

        var notificationManager = NotificationManager.FromContext(this);

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

But when the notification is received nothings happens and the logs of my devices gives me this:

[Mono] Assembly Ref addref ODEON.Android[0xa31db5c0] -> System.Core[0xa1f2f900]: 7
[MyFirebaseMsgService] From: 241571420247
[MyFirebaseMsgService] noti: 
[Mono] DllImport searching in: '__Internal' ('(null)').
[Mono] Searching for 'java_interop_jnienv_call_boolean_method'.
[Mono] Probing 'java_interop_jnienv_call_boolean_method'.
[Mono] Found as 'java_interop_jnienv_call_boolean_method'.
[Mono] Assembly Ref addref Xamarin.Android.Support.Compat[0xa31dca60] -> Java.Interop[0xa1f2f780]: 8
[Notification] Use of stream types is deprecated for operations other than volume control
[Notification] See the documentation of setSound() for what to use instead with android.media.AudioAttributes to qualify your playback use case 

Can anyone tell my why it doesn't display. Thanks in advance!

Upvotes: 0

Views: 303

Answers (1)

FreakyAli
FreakyAli

Reputation: 16409

If the send notification mehtod is called use the below code to show notifications:

        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
        .SetSmallIcon(Resource.Drawable.ic_stat_ic_notification)
        .SetContentTitle("Title")
        .SetContentText(messageBody)
        .SetAutoCancel(true)
        .SetContentIntent(pendingIntent);

    NotificationManagerCompat notificationManager = NotificationManagerCompat.From(this);
    notificationManager.Notify(0, notificationBuilder.Build());

Also if you have Android V 8+ devices which I'm sure you will see to it you are registering for a notification channel in your MainActivity OnCreate method

void CreateNotificationChannel()
    {
        if (Build.VERSION.SdkInt < BuildVersionCodes.O)
        {
            // Notification channels are new in API 26 (and not a part of the
            // support library). There is no need to create a notification 
            // channel on older versions of Android.
            return;
        }

        var channel = new NotificationChannel(CHANNEL_ID, "FCM Notifications", NotificationImportance.Default)
                      {
                          Description = "Firebase Cloud Messages appear in this channel"
                      };

        var notificationManager = (NotificationManager) GetSystemService(NotificationService);
        notificationManager.CreateNotificationChannel(channel);
    }

Upvotes: 1

Related Questions