我正在尝试在Android上设置通知,并且我得到了Visual Studio的警告,Notification.Builder.SetPriority()已经过时了。
它有替代品吗? Android建议使用SetImportance,但这似乎并未包含在Xamarin中。
此方法在API级别26中已弃用。请改用setImportance(int)。
SetImportance
包含在API26中的NotificationChannel
中,可以设置为通道上的属性,或者在NotificationChannel
构造函数中:
channel.Importance = NotificationImportance.High
要么
channel = new NotificationChannel(myUrgentChannel, channelName, NotificationImportance.High);
var title = "Note from Sushi";
var message = "StackOverflow is a really great source of information";
using (var notificationManager = NotificationManager.FromContext(BaseContext))
{
Notification notification;
if (Android.OS.Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.O)
{
notification = new Notification.Builder(BaseContext)
.SetContentTitle(title)
.SetContentText(message)
.SetAutoCancel(true)
.SetPriority(1)
.SetSmallIcon(Resource.Drawable.icon)
.SetDefaults(NotificationDefaults.All)
.Build();
}
else
{
var myUrgentChannel = PackageName;
const string channelName = "SushiHangover Urgent";
NotificationChannel channel;
channel = notificationManager.GetNotificationChannel(myUrgentChannel);
if (channel == null)
{
channel = new NotificationChannel(myUrgentChannel, channelName, NotificationImportance.High);
channel.EnableVibration(true);
channel.EnableLights(true);
channel.LockscreenVisibility = NotificationVisibility.Public;
notificationManager.CreateNotificationChannel(channel);
}
channel?.Dispose();
notification = new Notification.Builder(BaseContext)
.SetChannelId(myUrgentChannel)
.SetContentTitle(title)
.SetContentText(message)
.SetAutoCancel(true)
.SetSmallIcon(Resource.Drawable.icon)
.Build();
}
notificationManager.Notify(1331, notification);
notification.Dispose();
}