Notificações com NotificationCompat. Push Message Android - Parte 2

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Android /Notificações com NotificationCompat. Push Message Android - Parte 2

Notificações com NotificationCompat. Push Message Android - Parte 2

Vinícius Thiengo17/08/2015, Segunda-feira, às 14h
(1746) (12) (79) (2)

Opa, blz?

Dando continuidade a série de vídeos sobre Push Message no Android, nesse vídeo apresento algumas maneiras de utilizar a feature de notificações no Android, mais precisamente a classe NotificationCompat, que nos permite trabalhar da mesma forma (em termos de código) na API 21 ou superior quanto em APIs mais antigas.

Notification é uma entidade importante quando utilizando serviços de push message, pois muitas vezes a existência do push message é apenas para informar sobre conteúdo novo disponível, porém para informar é necessário o Notification que printa parte da informação na status bar do device (ou notification area). Além de trabalhar junto ao serviço de push message, o Notification também pode ser utilizado para serviços de stream, como no uso de arquivos mp3 com o MediaPlayer, vinculado a um service. O Notification nesse caso permitiria que o controle do audio fosse utilizado no área de notificações quando a tela estivesse não na lock screen e também quando em lock screen. Como apresentado também no vídeo, é possível utilizar até três action buttons junto a notification com o intuito de adiantar tarefas no background, os action buttons têm principalmente essa funcionalidade, permitir o user realizar tarefas frequentes (ou urgentes para a continuidade da tarefa atual em tela, por exemplo) com apenas um clique e sem a necessidade de abrir um Activity para isso.

No vídeo é apresentado como trabalhar com uma pilha virtual de Activities (utilizando a TaskStackBuilder), que mesmo não aparentando, tem uma importância alta na definição de Activities que vão além da Activity principal da APP na chamada via Notification e não são construídas no AndroidManifest.xml como Activities "especiais" (abertas apenas via Notification). Pois a pilha virtual permiti que o caminho normal seguido pelo user para abrir a Activity (quando entrando pela APP via home screen icon) ainda seja utilizado, porém utilizado na volta da Activity, tendo em mente que ela foi aberta diretamente via Notification. Apresento também a interface da Notification com o progress para download / upload de conteúdo e também como utilizar layouts personalizados como RemoteViews.

No vídeo busco apresentar somente o push message ativando o Notification e as várias formas de utilizar o Notification (mesmo que ainda tendo mais formas), logo a aplicação das entidades de push message e Notification ainda não estão em um contexto, por exemplo: um APP Android de mensagens instataneas. A contextualização das features vai vir com vídeos futuros da série. Sem mais delongas vou deixar você assistir ao vídeo.

Bugs. : aparentemente o bug do atributo excludeFromRecents ainda não foi resolvido. O problema do script de visibilidade de notificação aparentemente também é um bug, mas esse não encontrei nada relatado que realmente é um bug, logo no próximo vídeo provavelmente vai ter a correção dele.

GitHub do projeto: https://github.com/viniciusthiengo/push-message-serie

GitHub da parte Web do projeto: https://github.com/viniciusthiengo/push-message-serie-web

Segue link da PlayList da série:

Push Messages Android

Segue links das páginas utilizadas na construção do vídeo:

Página da classe NotificationCompat.Builder

Página tutorial de implementação de Notification, na documentação do Android

Página de Design Notification a partir do Material Design

Página de Design Notification abaixo do Material Design

Página documentação dos atributos da tag <activity>

Material Design Icons

Página de referência dos atributos do lado servidor no script de comunicação via push message GCM

Página / resposta no stackoverflow com implementação dos scripts de Vibrate, Sound e LED no Notification

Vlw

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

ContextMenu no RecyclerView. Material Design Android - Parte 17ContextMenu no RecyclerView. Material Design Android - Parte 17Android
Volley, Gson e RetryPolicy em Material Design Android Série APPVolley, Gson e RetryPolicy em Material Design Android Série APPAndroid
TextInputLayout e Envio de Email no Android com PHPMailer e AWS SESTextInputLayout e Envio de Email no Android com PHPMailer e AWS SESAndroid
GCM Downstream Messages. Push Message Android - Parte 1GCM Downstream Messages. Push Message Android - Parte 1Android

Compartilhar

Comentários Facebook

Comentários Blog (12)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
fernandescf15 (1) (0)
01/08/2016, Segunda-feira, às 05h
Td thiego?
Bm espero que sim!
Olha eu estou acompanhando a sua série de vídeo e estou um pouco atrasado por causa do seguinte problema:
Eu acompanho os seus vídeos, e tudo bem eu entendo tudo,  mas depois de duas semanas ou uma eu esqueço tudo (sei que aí você deve estar pensando e só praticar cara) e que mesmo praticando muito eu me esqueço,  e acabo por não ter tempo para prosseguir com os estudos!
E então eu gostaria de saber como voce faz para ter esse todo conteúdo na sua cabeça (E que esta muito difícil assim,  porque acabo por voltar no mesmo ponto e assim não estou fazendo nada)!
Responder
Vinícius Thiengo (0) (0)
02/08/2016, Terça-feira, às 01h
Fala Fernandes, blz?
Não se preocupe em esquecer, até mesmo autores renomados da computação voltam aos livros para lembrar de uma coisa ou outra.

Minha dica para vc fixar o conhecimento é desenvolver algo que tem em mente, digo, uma APP. Mesmo sem saber mt ainda, dessa forma vc terá de estudar focado em algumas partes para implementar sua APP e assim o conhecimento flui.

Quando aprendi Android e a desenvolver Web foi exatamente assim. Tive ideias em mente e então estudei o que precisava para implementá-las. Tente assim, de repente funciona contigo tb. Abraço
Responder
guilherme.carvalho.carnei (1) (0)
02/04/2016, Sábado, às 09h
Como fazer para a mensagem "quebrar" linha conforme o tamanho da tela do device?
Responder
Vinícius Thiengo (0) (0)
03/04/2016, Domingo, às 00h
Fala Guilherme, blz?
Tente essa solução: http://tips.androidhive.info/2015/04/android-showing-push-notification-in-multiline/

Abraço
Responder
Elvis de Lima (1) (0)
16/09/2015, Quarta-feira, às 18h
olá Thiengo, blz? você poderia me dizer uma boa hospedagem para meu servidor php?
Responder
Vinícius Thiengo (0) (0)
17/09/2015, Quinta-feira, às 04h
Fala Elvis, blz sim.
Se não tiver tempo para estudar o Linux e outras coisas importantes na instalação e utilização do AWS (Amazon Web Service), veja os planos da Locaweb, UOL Host e Hostgator. Hj o Blog roda na Locaweb. Abraço
Responder
19/09/2015, Sábado, às 15h
Amigo, eu uso a wihost..  Muito boa.
Responder
brizioalmeida2013 (2) (0)
24/08/2015, Segunda-feira, às 11h
muito obrigado, agora com essa lib Picasso, eu consegui o que queria a um bom tempo, consegui que a cada post, ou atualização de post. a notificação vai com a imagem destacada, em largeicon muito bom thiengo, valeu por mais esse insinamento.
Responder
20/08/2015, Quinta-feira, às 19h
Muito bom o Tutorial porem tenho uma duvida quando ao mensagem por puch. Por exemplo supondo que o usuário esteja com a wifi e serviço 3g desabilitado, se dermos o post na pagina do google que é responsável por enviar a mensagem para o aplicativo, o aparelho não vai receber essa mensagem, porem quando ligar a wifi, o servidor envia essa mensagem certo? Vamos supor que eu envio 2 mensagens as duas mensagem serão recebidas quando ligar a wifi? ou somente a ultima?
Responder
Vinícius Thiengo (0) (0)
21/08/2015, Sexta-feira, às 02h
Fala Augusto, blz?
No primeiro caso é isso mesmo, depois que a conexão voltar a mensagem será entregue, mas isso tb depende do atributo time_to_live que é responsável por informar ao Google até quanto tempo a mensagem deve ficar amarzenada nos servidores deles até ser entregue ou descartada. O tempo máximo é de 4 semanas, se o user não conseguir uma conexão de Internet no tempo definido em time_to_live, a mensagem será perdida.

No caso de enviar duas mensagens se serão ambas entregues ou apenas uma, essa é uma questão que tb envolve atributo do lado servidor, porém um atributo diferente, o collapse_key, utilizando ele somente a ultima mensagem é que será entregue, porém o comportamento padrão é sem ele, logo as duas menagens serão salvas no GCM para serem entregues, a problemática reside que o Google não garante a ordem das entregas, logo, se isso importa, pode ser que vire uma bagunça. Abraço
Responder
21/08/2015, Sexta-feira, às 10h
Certo.
Aonde consigo ver e aplicar essas configurações?
Responder
Vinícius Thiengo (0) (0)
22/08/2015, Sábado, às 03h
Augusto, essas configurações ficam em seu script do lado servidor, igual fiz no vídeo. Veja a variável $options desse link (https://github.com/viniciusthiengo/push-message-serie-web/blob/master/package/apl/AplUser.php) - é o projeto no GitHub. Abraço
Responder