DESENVOLVENDO PARA ANDROID: NOTIFICAÇÕES.
31/01/2012 Deixe um comentário
Opa galera, depois de tanto tempo, estou voltando para escrever um post rápido sobre android. Que são as notificações, lugares onde possam ser armazenados pequenas mensagens de aviso para o usuário.
Para criar uma nova notificação basta dar inicializar a classe Notification. Ela pode receber no construtor uma imagem, texto e o momento em que ela foi criada. Para mais informações consulte a documentação do Android.
Notification notification = new Notification(R.drawable.imagem, message, System.currentTimeMillis());
Ela deve conter a ação no qual ocorrerá quando ela for selecionada. Então ela deve conter uma Intent para saber o que fazer quando isso ocorrer. Um ponto pra ser reparado é o fato de colocar a flag Intent.FLAG_ACTIVITY_NEW_TASK na Intent. Assim ela iniciará uma nova Activity a sua escolha.
Intent notificationIntent = new Intent(ctx, Activity.class); PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0, notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
A seguir o exemplo completo:
Notification notification = new Notification(R.drawable.imagem, message, System.currentTimeMillis());
Intent notificationIntent = new Intent(ctx, Activity.class);
PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0, notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
//Aqui adicionamos o efeito de vibrar ao adicionar a notificação. Lembrando que para isso, precisamos adicionar a permissão:
//<uses-permission android:name="android.permission.VIBRATE"></uses-permission> no AndroidManifest.xml
notification.defaults |= Notification.DEFAULT_VIBRATE;
long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate;
//Aqui estamos setando o título para a notificação e o texto que será exibido
notification.setLatestEventInfo(ctx, "Título", message, contentIntent);
//Aqui estamos configurando o controle das notificações. Para isso você pega um serviço do sistema
NotificationManager manager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
//Então é só exibir a notificação pronta no sistema
manager.notify(idNoty, notification);
