在状态栏中显示通知文本 - Android

时间:2014-09-08 23:04:27

标签: android android-notifications google-cloud-messaging

在我的应用程序中,我需要向用户显示通知。通过在Android设备标题栏中显示图标和内容标题,以下代码段效果很好。

var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;
var uiIntent = new Intent(this, typeof(MainActivity));
var notification = new Notification(Resource.Drawable.AppIcon, title);
notification.Flags = NotificationFlags.AutoCancel;
notification.SetLatestEventInfo(this, title, desc, PendingIntent.GetActivity(this, 0, uiIntent, 0));
notificationManager.Notify(1, notification);

当我尝试构建用于部署应用程序的包时,出现以下错误:

  

Android.App.Notification.SetLatestEventInfo(Android.Content.Context,   string,string,Android.App.PendingIntent)'已过时:'已弃用'

所以我找到了我应该使用的代码片段,它显示状态栏中的图标而不是内容标题

Intent resultIntent = new Intent(this, typeof(MainActivity));

PendingIntent pi = PendingIntent.GetActivity(this, 0, resultIntent, 0);

NotificationCompat.Builder builder = new NotificationCompat.Builder(Forms.Context)
    .SetContentIntent(pi) 
    .SetAutoCancel(true) 
    .SetContentTitle(title)
    .SetSmallIcon(Resource.Drawable.AppIcon)
    .SetContentText(desc); //This is the icon to display

NotificationManager nm = GetSystemService(Context.NotificationService) as NotificationManager;
nm.Notify(_TipOfTheDayNotificationId, builder.Build());

我需要在新的代码段中设置什么才能在Android设备状态栏中显示内容标题?

2 个答案:

答案 0 :(得分:20)

我需要将.setTicker()添加到第二个代码段,以便在Android设备状态栏中显示文字

答案 1 :(得分:2)

下面的代码对我有用。只是在第二个片段中进行了一些更正。

Intent resultIntent = new Intent(this, TestService.class); 

    PendingIntent pi = PendingIntent.getActivity(this, 0, resultIntent, 0);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
        .setContentIntent(pi) 
        .setAutoCancel(true) 
        .setContentTitle("title")
        .setSmallIcon(R.drawable.ic_notif) //add a 24x24 image to the drawable folder
                                           // and call it here 
        .setContentText("desc"); 

    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.notify(0, builder.build());
相关问题