Capítulo 09 - Serviços em Background

2,824 views
2,783 views

Published on

Neste capítulo apresentamos a definição de Listeners que nos permitem acesso a eventos do device, externos à App.
Abordamos temas como:
1. Criação de Listener customizado com Broadcastreceiver;
2. Como capturar [ ] byte do SMS;
3. Criação de SmsMessage com createFromPdu();
4. Recuperar Número do telefone emitente com getDisplayOriginatingAddress();
5. Como tocar música usado MediaPlayer;
6. Permissões de acesso no AndroidManifest com SMS_RECEIVED;
7. Teste de envio / recebimento de SMS no Emulador, usando a view Emulator Control

Published in: Education

Capítulo 09 - Serviços em Background

  1. 1. Capítulo 09: Serviços em Background
  2. 2. Instrutor ● Programador desde 2000 ● Aluno de doutorado ● ● ● ● Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB – FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio palheta M.Sc. Márcio Palheta
  3. 3. Agenda ● Na estrada, até aqui ● Escutando eventos do Android, externos à App ● Autorização para escutar o recebimento de SMS ● Listener customizado com BroadcastReceiver ● Receber SMS ● Tocar MP3 M.Sc. Márcio Palheta 3/35
  4. 4. Serviços em Background ● ● ● Agora, queremos incrementar nossa App, avisando ao usuário sempre que chegar um SMS de um Aluno Para “escutar” o recebimento de SMSs, podemos usar a classe abstrata android.content.BroadcastReceiver Essa classe especialista possui um método de callback abstrato que escuta eventos do device: public void onReceive(Context context, Intent intent); ● Para escutar os eventos do device, precisamos pedir autorização no AndroidManifest M.Sc. Márcio Palheta 4/35
  5. 5. Exercício 01: Validar Nro de telefone ● Vamos atualizar a AlunoDAO para consultar se um determinado número de telefone pertence a um aluno: M.Sc. Márcio Palheta 5/35
  6. 6. Exercício 01: Validar Nro de telefone ● Vamos atualizar a AlunoDAO para consultar se um determinado número de telefone pertence a um aluno: M.Sc. Márcio Palheta 6/35
  7. 7. Exercício 02: Baixar arquivo de música ● ● ● Além de avisar quando chegar o SMS de um Aluno, queremos tocar um arquivo MP3 Para isso, vamos baixar o arquivo sound.mp3 https://github.com/marciopalheta/cursosandroid/tree/maste r/CadastroAluno/res/raw M.Sc. Márcio Palheta 7/35
  8. 8. Exercício 02: Baixar arquivo de música ● ● ● Além de avisar quando chegar o SMS de um Aluno, queremos tocar um arquivo MP3 Para isso, vamos baixar o arquivo sound.mp3 https://github.com/marciopalheta/cursosandroid/tree/maste r/CadastroAluno/res/raw Baixe o arquivo sound.mp3 M.Sc. Márcio Palheta 8/35
  9. 9. Exercício 03: Incluir MP3 no projeto ● Salve o arquivo sound.mp3 na pasta /res/raw/: M.Sc. Márcio Palheta 9/35
  10. 10. Exercício 03: Incluir MP3 no projeto ● Salve o arquivo sound.mp3 na pasta /res/raw/: Salve o arquivo em /res/raw M.Sc. Márcio Palheta 10/35
  11. 11. Exercício 03: Incluir MP3 no projeto ● Salve o arquivo sound.mp3 na pasta /res/raw/: Crie a pasta, caso não exista Salve o arquivo em /res/raw M.Sc. Márcio Palheta 11/35
  12. 12. Exercício 04: SMSReceiver ● ● Agora vamos cria a classe responsável por tratar SMSs recebidos de alunos Crie a classe SMSReceiver: M.Sc. Márcio Palheta 12/35
  13. 13. Exercício 04: SMSReceiver ● ● Agora vamos cria a classe responsável por tratar SMSs recebidos de alunos Crie a classe SMSReceiver: Novo pacote para nosso listener M.Sc. Márcio Palheta 13/35
  14. 14. Exercício 04: SMSReceiver ● ● Agora vamos cria a classe responsável por tratar SMSs recebidos de alunos Crie a classe SMSReceiver: Novo pacote para nosso listener Classe filha de BroadcastReceiver M.Sc. Márcio Palheta 14/35
  15. 15. Exercício 04: SMSReceiver ● ● Agora vamos cria a classe responsável por tratar SMSs recebidos de alunos Crie a classe SMSReceiver: Método de callback para escutar os eventos do device Novo pacote para nosso listener Classe filha de BroadcastReceiver M.Sc. Márcio Palheta 15/35
  16. 16. Exercício 05: SMSReceiver.onReceive() M.Sc. Márcio Palheta 16/35
  17. 17. Exercício 05: SMSReceiver.onReceive() Recuperar dados do SMS M.Sc. Márcio Palheta 17/35
  18. 18. Exercício 05: SMSReceiver.onReceive() Usando o objeto SmsMessage M.Sc. Márcio Palheta 18/35
  19. 19. Exercício 05: SMSReceiver.onReceive() Usando o objeto SmsMessage CreateFromPdu() transforma um [ ]byte em SmsMessage M.Sc. Márcio Palheta 19/35
  20. 20. Exercício 05: SMSReceiver.onReceive() Usando o objeto SmsMessage CreateFromPdu() transforma um [ ]byte em SmsMessage getDisplayOriginatingAddress() retorna o número do telefone remetente da mensagem M.Sc. Márcio Palheta 20/35
  21. 21. Exercício 05: SMSReceiver.onReceive() Tratar SMS de um Aluno M.Sc. Márcio Palheta 21/35
  22. 22. Exercício 05: SMSReceiver.onReceive() Tratar SMS de um Aluno Tocar MP3 M.Sc. Márcio Palheta 22/35
  23. 23. Exercício 06: Autorização de escuta ● Inclua nosso Receiver no AndroidManifest.xml: M.Sc. Márcio Palheta 23/35
  24. 24. Exercício 06: Autorização de escuta ● Inclua nosso Receiver no AndroidManifest.xml: Definição de um BroadcastReceiver M.Sc. Márcio Palheta 24/35
  25. 25. Exercício 06: Autorização de escuta ● Inclua nosso Receiver no AndroidManifest.xml: Definição de um BroadcastReceiver Nosso Receiver M.Sc. Márcio Palheta 25/35
  26. 26. Exercício 06: Autorização de escuta ● Inclua nosso Receiver no AndroidManifest.xml: Definição de um BroadcastReceiver Nosso Receiver Tipo de evento escutado M.Sc. Márcio Palheta 26/35
  27. 27. Exercício 07: SMS no emulador ● Com o emulador rodando, abra a aba de controle ● Digite Ctrl+3 e Emulator Control M.Sc. Márcio Palheta 27/35
  28. 28. Exercício 07: SMS no emulador ● Com o emulador rodando, abra a aba de controle ● Digite Ctrl+3 e Emulator Control Informe o número de telefone de um Aluno M.Sc. Márcio Palheta 28/35
  29. 29. Exercício 07: SMS no emulador ● Com o emulador rodando, abra a aba de controle ● Digite Ctrl+3 e Emulator Control Informe o número de telefone de um Aluno Selecione o envio de SMS e informe a mensagem M.Sc. Márcio Palheta 29/35
  30. 30. Exercício 07: SMS no emulador ● Com o emulador rodando, abra a aba de controle ● Digite Ctrl+3 e Emulator Control Informe o número de telefone de um Aluno Selecione o envio de SMS e informe a mensagem Enviar SMS para o emulador M.Sc. Márcio Palheta 30/35
  31. 31. Resultado do no emulador Notificação do device M.Sc. Márcio Palheta 31/35
  32. 32. Resultado do no emulador Notificação do device Notificação da App M.Sc. Márcio Palheta 32/35
  33. 33. O que vem a seguir? ● Integração via JSON ● Tarefas assíncronas e Barra de progresso ● Fragments ● Google Maps ● GPS M.Sc. Márcio Palheta 33/35
  34. 34. Referências ● www.caelum.com.br ● d.android.com ● ● LECHETA, Ricardo. Google Android, 3a edição, Novatec, São Paulo, 2013 Código fonte completo: https://github.com/marciopalheta/cursosandroid M.Sc. Márcio Palheta 34/35
  35. 35. Capítulo 09: Serviços em Background

×