到目前为止,这是我理解通知的代码。
Intent mIntent = new Intent(this, typeof(MainActivity));
Intent gIntent = new Intent(this, typeof(GameMenu));
Intent sIntent = new Intent(this, typeof(SceneMenu));
PendingIntent mainIntent = PendingIntent.GetActivity(this, 0, mIntent, 0);
PendingIntent gameIntent = PendingIntent.GetActivity(this, 0, gIntent, 0);
PendingIntent sceneIntent = PendingIntent.GetActivity(this, 0, sIntent, 0);
var notifSound = RingtoneManager.GetDefaultUri(RingtoneType.Notification);
//long[] pattern = new long[] { 1000, 500, 1000, 2000, 3000, 500, 500, 1000};
Notification n = new Notification.Builder(this)
.SetContentTitle("RBOS Notification")
.SetContentText("You won $1million")
.SetColor(Color.LightGreen)
//.SetVibrate(pattern)
.SetPriority((int)NotificationPriority.Max)
.SetShowWhen(true)
.SetSound(notifSound)
//.SetTicker(DateTime.Now.ToString("hh:mmtt"))
.SetSmallIcon(Resource.Drawable.ic_fb)
.SetContentIntent(mainIntent)
.SetAutoCancel(false)
.SetLights(Color.Green, 1000, 1000)
.AddAction(Resource.Drawable.ic_main, "Main", mainIntent)
.AddAction(Resource.Drawable.ic_play, "Game", gameIntent)
.AddAction(Resource.Drawable.ic_scene, "Scene", sceneIntent).Build();
NotificationManager notificationManager =
(NotificationManager)GetSystemService(NotificationService);
notificationManager.Notify(0, n);
我对如何设置通知而不是单词的图标本身感到有点困惑。目标api是软糖到更高。 在我的手机华硕与牛轧糖OS,它只显示单词。在其他手机Starmobile和OPPO中,它显示图标但只有部分单词。我希望显示类似无线电通知或vlc播放器通知的内容,以及之前的播放/暂停下一个图标按钮(没有它的单词)。
对于附带问题。自动收报机有什么用?当我把它放在那里时,我看不到任何变化。同样在OPPO中,为什么通知没有立即出现(如电池电量低时)甚至优先级设置为max
答案 0 :(得分:1)
标准通知在各种API上会出现不同(甚至在相同的API级别,但不同的OEM之间也不同)。
您似乎想要创建RemoteViews
并将其用作通知' CustomContentView
(就像通知抽屉中的媒体播放器一样)。这样您就可以使用自己的布局和内容覆盖默认通知模板。
var remoteView = new RemoteViews(PackageName, Resource.Layout.Alarm);
remoteView.SetInt(Resource.Id.myButton, "setText", Resource.String.rocks);
var notification = new Notification.Builder(this)
.SetSmallIcon(Android.Resource.Drawable.IcDialogInfo)
.SetCustomContentView(remoteView)
.Build();
Resource.Layout.Alarm
布局只包含一个Button
,因此通知只是通知抽屉中的一个按钮: