2015-05-12 11 views
6

Bunun önemsiz gibi göründüğünü hissediyorum, ancak telefonun ekranında bir bildirim görünmüyor gibi görünmüyor - yalnızca en üstteki durum çubuğunda görünüyor.Android Bildirimleri ekranın yanı sıra durum çubuğu simgesine nasıl gösteririm?

Yapmak istediklerimin bir örneği için, bir mesaj aldığınızda Facebook Messenger'ın ekranda belirdiği yer. Ben PRIORITY_MAX öncelik ayarlanmış olsa bile - Bir bildirim yollanır ise

Facebook on-screen notification

, öyle her durum çubuğunda küçük bir simge görünmek. Sadece durum çubuğu yerine ekranda görünmesini sağlamak için yapmam gereken başka bir ayar var mı?

Bildirim ekran kodu: kabul

PendingIntent contentIntent = PendingIntent.getActivity(context, nextId++, intent, PendingIntent.FLAG_CANCEL_CURRENT); 

Notification.Builder builder = new Notification.Builder(context) 
     .setContentTitle(title) 
     .setContentText(description) 
     .setContentIntent(contentIntent) 
     .setSmallIcon(R.drawable.ic_stat_notification) 
     .setLargeIcon(largeIcon) 
     .setPriority(Notification.PRIORITY_DEFAULT) 
     .setAutoCancel(true) 
     .setDefaults(Notification.DEFAULT_ALL); 

if (android.os.Build.VERSION.SDK_INT >= 21) { 
    builder.setColor(context.getResources().getColor(R.color.orange_500)) 
      .setVisibility(Notification.VISIBILITY_PUBLIC); 
} 

Notification notification = builder.build(); 
notificationManager.notify(id, notification); 
+0

Böyle bir uyarı bildirimi, 'NotificationCompat.Builder' ile yüksek öncelikli olarak kullanılmalıdır. Bakınız: https://github.com/commonsguy/cw-omnibus/tree/master/Notifications/Lollipop – CommonsWare

+0

Ah, işte burada. Bunu yapmak için 'NotificationCompat.Builder' kullanmanız gerekecek garip. Cevap olarak eklemek isterseniz kabul edeceğim. –

cevap

10

Her şey, o şöyle dursun bir Notification manuel olarak oluşturmak, Notification.Builder üzerinde NotificationCompat.Builder kullanmak için bir gerçekten iyi bir fikirdir. Size zarif bozulma ile güzel geriye dönük uyumluluk sağlar (API level 4'e geri dönülür, aksi halde "gadzooks, bu eski" olarak bilinir). AFAIK, NotificationManagerCompat ile birlikte kullanıldığında Android Wear'ın bazı özelliklerinden kurtulmanın tek yolu. Ve, bu durumda, daha yeni Android 5.0+ özellikleri ile daha mutlu görünüyor.

Bu örnekte, numaralı telefondan NotificationCompat.Builder numaralı setPriority(NotificationCompat.PRIORITY_HIGH), NotificationManagerCompat ile birlikte kullanıldığında, Android 5.0 ve üstü sürüm bildirimleri verilecektir.