2014-09-08 15 views
6

Nella mia applicazione ho bisogno di visualizzare la notifica all'utente. Il seguente frammento di codice ha funzionato benissimo visualizzando l'icona e il titolo del contenuto nella barra del titolo del dispositivo Android.Testo di notifica di visualizzazione nella barra di stato - 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); 

Quando ho cercato di costruire il pacchetto per la distribuzione dell'applicazione, ottengo il seguente errore:

Android.App.Notification.SetLatestEventInfo(Android.Content.Context, string, string, Android.App.PendingIntent)' is obsolete: 'deprecated'

così ho trovato questo frammento di codice dovrei usare e si vede l'icona dello stato bar, non il titolo del contenuto

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()); 

di cosa ho bisogno per impostare il nuovo frammento di codice per visualizzare il titolo del contenuto nella barra di stato dispositivo Android?

+0

non imposta il criterio di selezione? – njzk2

+0

No, non è così. –

+0

possibile duplicato di [Come implementare i metodi deprecati di notifica] (http://stackoverflow.com/questions/16852270/how-to-implement-the-deprecated-methods-of-notification) – njzk2

risposta

19

ho bisogno di aggiungere .setTicker() al secondo frammento di codice per avere la visualizzazione del testo nella barra di stato dispositivo Android

+0

Questa dovrebbe essere la risposta accettata! Le risposte in altre domande dicono che dovresti dare una piccola icona, ma sono inutili. – Ninja

1

Di seguito il codice ha lavorato per me. Solo alcune correzioni nel secondo frammento.

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());