Android Notification

O Assunto é Notificação, Notification para os íntimos!

Dispositivos móveis são modernos e rápidos, muitos possuem a capacidade de rodar jogos com resoluções altíssimas, na grande maioria das vezes é por isso compramos. É neste cenário que entram as notificações, naqueles momentos em que estamos aficcionados em uma corrida, procurando bater o record com o melhor tempo, que vibrar o celular e o seu record foi pelos ares, uma mensagem chegou e a tela do jogo foi colocada em segundo plano, ficando a tela da caixa de entrada de mensagens em evidência.

O android soluciona este exemplo de forma simples e inteligente, ao invés de tomar conta da tela simplemente notifica ao usuário que algum evento aconteceu.

Vamos deixar os jogos de lado por alguns instantes e visualizar o exemplo abaixo:

A imagem acima demonstra um usuário navegando na internet e uma notificação de recebimento de mensagem. O usuário optará por interromper a sua navegação e ler a mensagem, arrastando a barra de notificações para baixo, ou continuar e deixar para ler depois.

Neste exemplo, caso o usuário queira visualizar a mensagem será necessário clicar sobre a notificação para que uma tela (activity) de leitura de mensagens seja visualizada. O android possui um aplicativo para a leitura e gerenciamento de mensagens, uma activity como todas as outras.

Nesta tela podemos observar o número do remetente da mensagem, a mensagem, uma caixa de texto para respondermos e um botão enviar. Uma tela simples, uma activity simples.

Notificações na prática

Bem, ate agora apenas exemplifiquei o que é uma notificação, mas ainda não falei como notificar, o que é necessário, quando acontece e como programar. Para isso usarei um exemplo simples, uma receiver que conterá uma action, (mais sobre action) que ao perceber que o celular recebeu uma mensagem irá notificar o usuário.

Os passos serão:

1 – Criar um receiver que será responsável por tratar o evento de recebimento da mensagem.

2 – Acessar o gerenciador de notificações e criar a notificação

3 – Criar uma activity que será chamando quando o usuário clicar sobre a notificação.

Criar o receiver para tratar eventos de mensagem

Assumindo que o projeto esta criado, exemplo.

Primeiramente iremos criar um Broadcast Receiver (assunto para outro post) que será chamado assim que o android perceber que uma mensagem chegou ao dispositivo.

Um broadcast trabalhar em segundo plano, não possui tela e é responsável por filtar intenções, como chamadas telefônicas, recebimento de mensagens ou qualquer outra ação definida. Para ter um Broadcast basta estender de android.content.BroadcastReceiver e declarar um <receiver> no AndroidManifest.xml.

Onde:

1 – Declaração do receiver. Observe que a action android.provider.Telephony.SMS_RECEIVED foi adicionada para filtrar as mensagens recebidas no dispositivo.

2 – Sinaliza que a aplicação precisa de permissão para receber as mensagens.

Neste ponto a aplicação está configurada para interceptar as mensagens e para testar, utilizarei a perspectiva DDMS do plugin ADT instalado no eclipse.

Onde:

1 – Emulador que será utilizado para enviar a mensagem. Observe a porta do emulador.

2 – Identifica a porta do emulador.

3 – Informações da mensagem, telefone do remetente, tipo de chamada e mensagem.

Ao enviar a mensagem o receiver receberá a intenção e mostrará a mensagem na tela.

Acessar o gerenciador de notificações e criar a notificação

Criar uma activity que será chamando quando o usuário clicar sobre a notificação

Ao executar a aplicação novamente e simular o envio de SMS a tela abaixo será apresentada:

Na maioria das vezes as notificações são utilizadas por processos que rodam em segundo plano, que buscam realmente informar ao usuário sobre algum evento, mas que não podem atrapalhar.

Bem, é isso, notifique-me sobre algum evento.

Ate a próxima.

3 Respostas

  1. Olá, Ythalo! Ótimo post!

    Você saberia indicar em que momento o identificadorSMS será criado no arquivo R? Pergunto isso porque não consigo testar corretamente o exemplo do post por não reconhecer esse identificador.

    Obrigado e abraço!

  2. Olá Iális,

    Este valor esta setado no arquivo res/strings.xml do projeto.

    Tratei esta informação com um recurso, desta forma o R.string.identificadorSMS esta setado no arquivo strings.xml da pasta /res.

    Atenciosamente.

  3. como apagar as mensagens que estão contida na notificação mais não tem como ler pois foram apagadas?

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.