Stas Petrov
Stas Petrov

Reputation: 325

Android notification sound doesn't work

var notificationBuilder = new Notification.Builder(context)
                .SetSmallIcon(Resource.Drawable.Icon)
                .SetLargeIcon(BitmapFactory.DecodeResource(Application.Context.Resources, Resource.Drawable.Icon))
                .SetContentTitle(title)
                .SetContentText(message)
                .SetAutoCancel(true)
                .SetContentIntent(pendingIntent)                 
                .SetStyle(new Notification.BigTextStyle().BigText(message))
                .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification))
                .SetVibrate(new long[] { 1000, 1000 })
                .SetDefaults(NotificationDefaults.All);

            var notificationManager = (NotificationManager)context.GetSystemService(Context.NotificationService);
            notificationManager.Notify(0, notificationBuilder.Build());

Where i was wrong? Why my notifications doesn't have any sound or vibration?

Upvotes: 0

Views: 1725

Answers (2)

SushiHangover
SushiHangover

Reputation: 74174

Remove .SetDefaults(NotificationDefaults.All), you are resetting the notification settings that you just built:

var notification = new Notification.Builder(Application.Context)
    .SetSmallIcon(Resource.Mipmap.Icon)
    .SetLargeIcon(BitmapFactory.DecodeResource(Application.Context.Resources, Resource.Mipmap.Icon))
    .SetContentTitle("Stack")
    .SetContentText("OverFlow")
    .SetAutoCancel(true)
    //.SetContentIntent(pendingIntent)
    .SetStyle(new Notification.BigTextStyle().BigText("OverFlow"))
    .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification))
    .SetVibrate(new long[] { 1000, 1000 })
    .Build();

var notificationManager = (NotificationManager)Application.Context.GetSystemService(Context.NotificationService);
notificationManager.Notify(1, notification);

Upvotes: 4

deejay
deejay

Reputation: 572

Try passing uri to setSound in notificationBuilder like this

Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); notificationBuilder.setSound(uri);

Upvotes: 0

Related Questions