Este capítulo discute como criar serviços em background em aplicativos Android. Primeiro, explica como usar BroadcastReceivers para escutar eventos externos como recebimento de SMS. Em seguida, mostra como validar se um SMS foi enviado por um aluno cadastrado e tocar um arquivo MP3 nesse caso. Por fim, fornece exercícios passo-a-passo para implementar esses recursos.
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. 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. 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. 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. 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. 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. 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. Exercício 03: Incluir MP3 no projeto
●
Salve o arquivo sound.mp3 na pasta /res/raw/:
M.Sc. Márcio Palheta
9/35
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. 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. 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. 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. 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. 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
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
23. Exercício 06: Autorização de escuta
●
Inclua nosso Receiver no AndroidManifest.xml:
M.Sc. Márcio Palheta
23/35
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. 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. 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. 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. 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. 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. 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. Resultado do no emulador
Notificação
do device
M.Sc. Márcio Palheta
31/35
32. Resultado do no emulador
Notificação
do device
Notificação da App
M.Sc. Márcio Palheta
32/35
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