Я хочу уведомить пользователя о появлении сообщения, я использовал два типа уведомлений, (Новый: , поддерживаемый> = 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());
}
, но в старых устройствах уведомление не работает на всех! Любая помощь? точка: никаких ошибок, никаких исключений, только уведомление не обходится!
Как насчет добавления несколько объясняющих предложений? :-) –
У меня был подобный опыт, и я нашел другой вопрос в stackoverflow. Он сказал, что в SDK <4.1 используется метод getNotification(), тогда как в SDK> = 4.1 build(). Я пытаюсь найти и связать его. –
даже getNotification() не работает! (getNotification() устарел Использовать build() вместо этого !! –