简体   繁体   English

API 27中未显示本地通知

[英]Local Notifications are not showing in API 27

Notifications are working for Api 26 and below perfectly but they are not working with API 27. 通知在Api 26及以下版本上可正常使用,但不适用于API 27。

Here is my code for create notification channel: 这是我用于创建通知频道的代码:

private void CreateNotificationChannel()
{
    try
    {
        if (Build.VERSION.SdkInt < BuildVersionCodes.O)
        {
            return;
        }

        var notificationManager = (NotificationManager)GetSystemService(NotificationService);
        NotificationChannel mChannel = notifManager.GetNotificationChannel("1");
        if (mChannel == null)
        {
            mChannel = new NotificationChannel("1", "Chat Application", Android.App.NotificationImportance.High);
            mChannel.EnableVibration(true);
            mChannel.SetVibrationPattern(new long[] { 100, 200, 300, 400, 500, 400, 300, 200, 400 });
            notifManager.CreateNotificationChannel(mChannel);
        }
    }
    catch (Exception exception)
    {
        LoggingManager.Error(exception);
    }

}

And my notification Service is: 我的通知服务是:

var activity = Forms.Context as Activity;

Intent intent = new Intent(activity, typeof(MainActivity));
intent.AddFlags(ActivityFlags.ClearTop);
Random random = new Random();
int pushCount = random.Next(9999 - 1000) + 1000; //for multiplepushnotifications

intent.AddFlags(ActivityFlags.ClearTop);
var pendingIntent = PendingIntent.GetActivity(activity, pushCount, intent, PendingIntentFlags.Immutable);

// Instantiate the builder and set notification elements:
NotificationCompat.Builder builder = new NotificationCompat.Builder(Forms.Context,"1")
                                                           .SetContentTitle(messageTitle)
                                                           .SetDefaults(1|2)
                                                           .SetContentText(Message)
                                                           .SetContentIntent(pendingIntent)
                                                           .SetAutoCancel(true)
                                                           .SetChannelId("1")
                                                           .SetPriority(1);
builder.SetSmallIcon(Resource.Drawable.icon);

// Build the notification:
Notification notification = builder.Build();

// Get the notification manager:
NotificationManager notificationManager = Forms.Context.GetSystemService(Context.NotificationService) as NotificationManager;

// Publish the notification:
notificationManager.Notify(5, notification);

Please help me out or give me some suggestions how can I resolve this issue. 请帮帮我或给我一些建议,我该如何解决此问题。

Can you please try with notificationManager.Notify(new Random().Next(), notification); 您可以尝试使用notificationManager.Notify(new Random()。Next(),notification);吗?

instead of notificationManager.Notify(5, notification); 而不是notificationManager.Notify(5,notification);

I have a feeling there is something wrong with your channel creation, below you can check my working piece of code. 我觉得您的频道创建有问题,您可以在下面检查我的工作代码段。

 var mChannel = new NotificationChannel(CHANNEL_ID, "Chat Application", Android.App.NotificationImportance.High)
                  {
                      Description = "Firebase Cloud Messages appear in this channel"
                  };
        mChannel.EnableVibration(true);
        mChannel.SetVibrationPattern(new long[] { 100, 200, 300, 400, 500, 400, 300, 200, 400 });           

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM