Desenvolvimento de um aplicativo básico usando o Google Android
(Notification)
Programação de Dispositivos Móveis
Mauro Lopes Carvalho Silva
Professor EBTT
DAI – Departamento de Informática
Campus Monte Castelo
Instituto Federal de Educação Ciência e Tecnologia do Maranhão
Programação de Dispositivos Móveis – 7º Período
Objetivos
• Nesta aula iremos apresentar a classe Notification.
No android existem basicamente dois tipos de
notificações. Elas podem ser feitas utilizando um
Toast (que já utilizamos) ou a área de Notificação
do sistema. Vamos entender como criar
notificações que não sejam Toast. Nosso objetivo
principal é aproximar o aluno do desenvolvimento
de um aplicativo básico.
Programação de Dispositivos Móveis – 7º Período
Plano de Aula
• Notification




O que é?
Por que usar?
Como criar?
Considerações
Programação de Dispositivos Móveis – 7º Período
Notification
O que é uma Notification?
• Um Notification, como o próprio nome diz é utilizada
para exibir uma notificação ao usuário;
• Uma notificação é uma mensagem especial que
aparece na barra de status do celular para chamar a
atenção do usuário;
• Ao receber uma notificação, o usuário pode:
• decidir visualizar seu conteúdo;
• ou simplesmente ignorar a mensagem.
• Se visualizar o conteúdo, a notificação pode disparar
uma intent para iniciar diversos tipos de processos
diferentes.
Programação de Dispositivos Móveis – 7º Período
Notification
O que é uma Notification?
Um exemplo bem
comum é o aviso de
recebimento
de
novos e-mails no
gmail ou de novas
mensagens
do
Whatsapp.
Programação de Dispositivos Móveis – 7º Período
Notification
Por que usar uma Notification?
• Uma aplicação executando em segundo plano nunca deve
exibir um alerta para o usuário, ou pior ainda, abrir uma
tela sem a permissão do mesmo;
• Dessa forma, nossa aplicação não pode atrapalhar a
atividade que o usuário está executando no momento;
• Para isso o Android tem a classe android.app.Notification,
que deve ser utilizada para exibir notificações ao usuário;
• As notificações são ícones e mensagens que aparecem na
barra de status do celular para chamar a atenção do
usuário;
• Uma notificação pode inclusive fazer o celular vibrar ou
acender as luzes;
Programação de Dispositivos Móveis – 7º Período
Notification
Como criar uma Notification?
• Antes do Android 3.x:
 Antes da versão Android 3.x era necessário trabalharmos com
as classes: NotificationManager e o Notification para
conseguirmos lançar uma notificação.
NotificationManager notificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "Uma
nova mensagem!", System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new
Intent(this, TelaParaNotificacaoActivity.class), 0);
notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent);
notificationManager.notify(R.string.app_name, notification);
Programação de Dispositivos Móveis – 7º Período
Notification
1
ícone
2
3
Programação de Dispositivos Móveis – 7º Período
Notification
Como criar uma Notification?
• Notificações no Android 3.x ou superior:
 A partir do Android 3.x é recomendado utilizar a classe
Notification.Builder para criar notificações;
1) Content Title;
2) Large Icon;
3) Context Text;
4) Content Info;
5) Small Icon;
6) Momento em que a notificação foi enviada.
Programação de Dispositivos Móveis – 7º Período
Notification
Como criar uma Notification?
• Notificações no Android 3.x ou superior:
1: public void onReceive(Context contexto, Intent it) {
2:
int idNot = 999;
3:
Intent itBroad = new Intent("ACAO_LEGAL");
4:
PendingIntent pi = PendingIntent.getActivity(contexto, 0, itBroad, 0);
5:
Notification.Builder builder = new Notification.Builder(contexto);
6:
builder.setTicker(“Chegou Mensagem");
7:
builder.setContentTitle("Nova Mensagem");
8:
builder.setContentText("Mensagem Legal!!!");
9:
builder.setLargeIcon(BitmapFactory.decodeResource
(contexto.getResources(),R.drawable.email_grande));
10: builder.setWhen(System.currentTimeMillis());
11: builder.setSmallIcon(R.drawable.email_pequeno);
12: builder.setAutoCancel(true);
13: builder.setContentIntent(pi);
14: Notification n = builder.build();
15: NotificationManager nm = (NotificationManager)
contexto.getSystemService(Activity.NOTIFICATION_SERVICE);
16: nm.notify(idNot, n);
}
Programação de Dispositivos Móveis – 7º Período
Notification
Considerações sobre o Código-Fonte
• Notificações no Android 3.x ou superior:
• O método setTicker(), gera a mensagem que aparece na barra de
status do dispositivo (linha 6);
• A classe BitmapFactory, decodifica o objeto que se encontra na
pasta de recursos em um objeto de Bitmap entendível ao Android
(linha 9);
• O método setWhen() é utilizado para definir um valor explícito de
tempo para ocorrência da notificação. o padrão é o tempo que o
sistema recebeu a notificação (linha 10);
• O método setAutoCancel() indica que depois de clicar na
notificação ela será destruída (linha 12);
Programação de Dispositivos Móveis – 7º Período
Notification
Considerações sobre Notification
• Ao criar uma instância de PendingIntent usamos o método
getActivity. Isto devido a nosso objetivo ser acionar uma
Activity. No entanto podemos também chamar os métodos
getBroadcast (para acionar um BroadcastReceiver) ou
getService (para acionar um Service);
• A classe
NotificationManager,
tem
dois
métodos
importantes: notify (int id, Notification notificação) e cancel
(int id);
• O método notify() dispara a notificação;
• O método cancel() destrói a notificação;
• O Android disponibiliza a classe NotificationCompat que é da
lib de compatibilidade (android-support-v4.jar) para que nós
possamos utilizar notificações independente de versão.
Programação de Dispositivos Móveis – 7º Período
Dúvidas
Página do Professor Mauro:
http://www.dai.ifma.edu.br/~mlcsilva
Programação de Dispositivos Móveis – 7º Período
Próxima Aula
• Desenvolvimento de um aplicativo básico usando o
Google Android: Service.
Programação de Dispositivos Móveis – 7º Período
Referências
• Google Android: aprenda a criar aplicações para
dispositivos móveis com o Android SDK - Ricardo
R. Lacheta, São Paulo: Novatec, 2010.
• Sites:
• http://androidzin.blogspot.com.br/2012/10/notificacoes.html
Programação de Dispositivos Móveis – 7º Período
Download

Notification - DAI