Todas as versões do Android (atualmente o sistema está na versão 4.4) possuem um módulo de notificação que permite informar ao usuário pequenos trechos de informação, como a chegada de um e-mail ou SMS, e permitir que ele realize uma ação com esta mensagem (seja ela dispensar o aviso ou ir para uma aplicação utilizando a mensagem como um atalho). Seja como for, os avisos por notificação são úteis e bem fáceis de desenvolver mas precisam de um determinado cuidado porque sua criação varia conforme a versão do sistema que nosso aplicativo está rodando.
Portanto, se você precisa incluir o serviço de notificações em seu aplicativo, fique ligado nos passos abaixo.
Você pode incluir os trechos de código abaixo em uma classe de apoio ou dentro de um método em alguma parte de sua aplicação. A Listagem-1 demonstra como criar uma notificação para as versões mais antigas do Android (até a versão 10 de API).
Listagem-1
public static void criaNotificacaoAndroidVelho(Context context, Intent intent, int icon, CharSequence ticker, CharSequence title, CharSequence message, int id){ PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); Notification notification = new Notification (icon, ticker, System.currentTimeMillis()); notification.setLatestEventInfo(context, title, message, pendingIntent); NotificationManager notificationManager = (NotificationManager) context.getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify(id, notification); }
A partir da versão 11 em diante, a criação de notificações é feita utilizando Builders como temos em outras partes da API que serve ao desenvolvimento Android. Esta remodelação faz parte da tendência do sistema operacional de acomodar melhor padrões de projeto e facilitar o reuso e documentação de código.
Desta maneira, a Listagem-2 demonstra como criar notificações do Android API 11 a 19. Mas reparem que, ao invocar o construtor de notificações, existe uma nova maneira que devemos utilizar para as API a partir da versão 17 em diante.
Listagem-2
public static void criaNotificacaoAtual(Context context, Intent intent, int icon, CharSequence title, CharSequence message, int id){ PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); Notification notification = null; Notification.Builder builder = new Notification.Builder(context) .setContentTitle(title) .setContentText(message) .setSmallIcon(icon) .setContentIntent(pendingIntent); if(Build.VERSION.SDK_INT >= 17){ notification = builder.build(); } else{ notification = builder.getNotification(); } NotificationManager notificationManager = (NotificationManager) context.getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify(id, notification); }
Quer ver mais dicas como esta? Acesse o IAI? em site.iai.art.br