我正在尝试在 Android 上设置通知,但我收到 Visual Studio 发出的警告 Notification.Builder.SetPriority()已经过时了。
有替代品吗?安卓提示SetImportance但这似乎没有包含在 Xamarin 中。
最佳答案
This method was deprecated in API level 26. use setImportance(int) instead.
SetImportance
包含在 API26 中的 NotificationChannel
中,可以设置为 channel 上的属性,或在 NotificationChannel
构造函数中:
channel.Importance = NotificationImportance.High
或
channel = new NotificationChannel(myUrgentChannel, channelName, NotificationImportance.High);
条件 API 通知示例:
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();
}
关于android - 替代过时的 Notification.Builder.SetPriority()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140479/