2014-09-08 16 views
6

W mojej aplikacji muszę wyświetlić powiadomienie dla użytkownika. Poniższy fragment kodu zadziałał dobrze, wyświetlając ikonę i tytuł treści na pasku tytułu urządzenia Android.Wyświetl tekst powiadomienia na pasku stanu - 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); 

Kiedy próbowałem zbudować pakiet do wdrażania aplikacji, pojawia się następujący błąd:

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

więc znalazłem ten fragment kodu I powinny być using i pokazuje ikonę w statusie bar przez nie tytuł zawartości

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

Co muszę ustawić w nowym fragmencie kodu, aby wyświetlić tytuł zawartość w pasku stanu android urządzenie?

+0

nie ma ustawionej treści? – njzk2

+0

Nie, nie ma. –

+0

możliwy duplikat [Jak wdrożyć nieaktualne metody notyfikacji] (http://stackoverflow.com/questions/16852270/how-to-implement-the-deprecated-methods-of-notification) – njzk2

Odpowiedz

19

muszę dodać .setTicker() do drugiego fragmentu kodu mieć wyświetlania tekstu w pasku stanu urządzenia z Androidem

+0

To powinna być zaakceptowana odpowiedź! Odpowiedzi w innym pytaniu mówią, że powinieneś dać mały Icon, ale są one bezużyteczne. – Ninja

1

poniższy kod pracował dla mnie. Kilka poprawek w drugim fragmencie.

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