首页 > 解决方案 > 转换为 NotificationCompat 会破坏 SetSmallIcon 功能?

问题描述

我在将 Notification 移动到 Compat 库版本时遇到了一些麻烦:在主库中,我曾经只是将图标转换为位图(api 23 及更高版本)并执行 SetSmallIcon(icon) 以显示动态通知图标。

但是 Compat 版本只有一个 int 参数(我假设它是资源 ID),我找不到任何关于如何在其中生成/转换/添加我的位图和/或图标的信息。

位图基本上是通过显示最重要信息的画布将生成的文本转换为位图。

我的问题是:有没有办法将一个类变量变成一个资源,或者让它的 ID 像资源 ID 一样工作,或者其他一些允许我实际添加我在运行时创建的位图的技巧?

标签: xamarinnotifications

解决方案


您可以使用此代码。参考icon正在使用的线路

var notificationBuilder = new NotificationCompat.Builder(this)
                 .SetSmallIcon(Resource.Drawable.NotifIconSis).SetColor(Android.Graphics.Color.Rgb(33, 150, 243))
                 .SetContentTitle(user.Organization)
                 .SetSubText(user.ModuleName).SetStyle(new NotificationCompat.BigTextStyle().BigText(user.BodyText))
                 .SetContentText(user.BodyText)
                 .SetAutoCancel(true)
                 .SetContentIntent(pendingIntent)
                 .Build();
var notificationManager = NotificationManagerCompat.From(Application.Context);
//var notification = RingtoneManager.GetDefaultUri(RingtoneType.Notification);
//var mp = MediaPlayer.Create(ApplicationContext, notification);
//mp.Start();
//notificationManager.Notify(redomId, notificationBuilder);

推荐阅读