2014-09-21 2 views
0

Я хочу уведомить пользователя о появлении сообщения, я использовал два типа уведомлений, (Новый: , поддерживаемый> = 4.1), а другой тип - для более старого устройства, Я пишу условие для проверки устройства SDK версии и извещения подходящего типа notyfication:уведомлять по подходящему типу уведомлений в соответствии с устройством SDK

if(Build.VERSION.SDK_INT>=4.1) { 
Notification notification = new Notification.Builder(context) 
     .setContentTitle("new message from" + msg.getString(ConstantsGCM.NAME_CLM)) 
     .setContentText(msg.getString(ConstantsGCM.BODYCLM)) 
     .setSmallIcon(icon) 
     .setLargeIcon(bm) 
     .setAutoCancel(true) 
     .setWhen(when).setVibrate(viber) 
     .setContentIntent(contentIntent) 
     .build(); 

if (EntryActivity.useSound.equals("yes")) 
    if (!ring.equals("")) 
     notification.sound = (Uri.parse(ring)); 
    else notification.defaults = Notification.DEFAULT_SOUND; 
mNotificationManager.notify(110, notification); 
}else { //old type.. 
NotificationCompat.Builder mBuilder = 
     new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.newlogo) 
       .setContentTitle("new message from" + msg.getString(ConstantsGCM.NAME_CLM)) 
       .setContentText(msg.getString(ConstantsGCM.BODYCLM)) 
       .setContentIntent(contentIntent) 
       .setLargeIcon(bm) 
       .setAutoCancel(true) 
       .setWhen(when); 

if (EntryActivity.useSound.equals("yes")) 
    if (!ring.equals("")) 
     mBuilder.setSound(Uri.parse(ring)); 
    else mBuilder.setDefaults(Notification.DEFAULT_SOUND); 


mNotificationManager.notify(110, mBuilder.build()); 
} 

, но в старых устройствах уведомление не работает на всех! Любая помощь? точка: никаких ошибок, никаких исключений, только уведомление не обходится!

ответ

0

В вашем заявлении еще попробовать это:

mNotificationManager.notify(110, mBuilder.getNotification()); 
+0

Как насчет добавления несколько объясняющих предложений? :-) –

+0

У меня был подобный опыт, и я нашел другой вопрос в stackoverflow. Он сказал, что в SDK <4.1 используется метод getNotification(), тогда как в SDK> = 4.1 build(). Я пытаюсь найти и связать его. –

+0

даже getNotification() не работает! (getNotification() устарел Использовать build() вместо этого !! –

Смежные вопросы