Upload
marcio-palheta
View
1.725
Download
2
Embed Size (px)
DESCRIPTION
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
Citation preview
Capítulo 09: Serviços em Background
M.Sc. Márcio Palheta
Instrutor
● Programador desde 2000
● Aluno de doutorado
● Mestre em informática pelo ICOMP/UFAM
● Especialista em aplicações WEB – FUCAPI
● sites.google.com/site/marciopalheta
M.Sc. Márcio Palheta
3/35
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
4/35
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:
● Para escutar os eventos do device, precisamos pedir autorização no AndroidManifest
public void onReceive(Context context, Intent intent);
M.Sc. Márcio Palheta
5/35
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
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
7/35
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/master/CadastroAluno/res/raw
M.Sc. Márcio Palheta
8/35
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/master/CadastroAluno/res/raw
Baixe o arquivosound.mp3
M.Sc. Márcio Palheta
9/35
Exercício 03: Incluir MP3 no projeto
● Salve o arquivo sound.mp3 na pasta /res/raw/:
M.Sc. Márcio Palheta
10/35
Exercício 03: Incluir MP3 no projeto
● Salve o arquivo sound.mp3 na pasta /res/raw/:
Salve o arquivoem /res/raw
M.Sc. Márcio Palheta
11/35
Exercício 03: Incluir MP3 no projeto
● Salve o arquivo sound.mp3 na pasta /res/raw/:
Salve o arquivoem /res/raw
Crie a pasta, caso não exista
M.Sc. Márcio Palheta
12/35
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
13/35
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
14/35
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
15/35
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 BroadcastReceiverMétodo de callback
para escutar oseventos do device
M.Sc. Márcio Palheta
16/35
Exercício 05: SMSReceiver.onReceive()
M.Sc. Márcio Palheta
17/35
Exercício 05: SMSReceiver.onReceive()Recuperar dadosdo SMS
M.Sc. Márcio Palheta
18/35
Exercício 05: SMSReceiver.onReceive()
Usando o objeto SmsMessage
M.Sc. Márcio Palheta
19/35
Exercício 05: SMSReceiver.onReceive()
Usando o objeto SmsMessage
CreateFromPdu() transforma um [ ]byte em SmsMessage
M.Sc. Márcio Palheta
20/35
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
21/35
Exercício 05: SMSReceiver.onReceive()
Tratar SMS deum Aluno
M.Sc. Márcio Palheta
22/35
Exercício 05: SMSReceiver.onReceive()
Tratar SMS deum Aluno
Tocar MP3
M.Sc. Márcio Palheta
23/35
Exercício 06: Autorização de escuta
● Inclua nosso Receiver no AndroidManifest.xml:
M.Sc. Márcio Palheta
24/35
Exercício 06: Autorização de escuta
● Inclua nosso Receiver no AndroidManifest.xml:
Definição de umBroadcastReceiver
M.Sc. Márcio Palheta
25/35
Exercício 06: Autorização de escuta
● Inclua nosso Receiver no AndroidManifest.xml:
Definição de umBroadcastReceiver Nosso Receiver
M.Sc. Márcio Palheta
26/35
Exercício 06: Autorização de escuta
● Inclua nosso Receiver no AndroidManifest.xml:
Definição de umBroadcastReceiver Nosso Receiver
Tipo de eventoescutado
M.Sc. Márcio Palheta
27/35
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
28/35
Exercício 07: SMS no emulador
● Com o emulador rodando, abra a aba de controle
● Digite Ctrl+3 e Emulator ControlInforme o número de telefone de um Aluno
M.Sc. Márcio Palheta
29/35
Exercício 07: SMS no emulador
● Com o emulador rodando, abra a aba de controle
● Digite Ctrl+3 e Emulator ControlInforme o número de telefone de um Aluno
Selecione o envio de SMS e informe a mensagem
M.Sc. Márcio Palheta
30/35
Exercício 07: SMS no emulador
● Com o emulador rodando, abra a aba de controle
● Digite Ctrl+3 e Emulator ControlInforme 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
31/35
Resultado do no emulador
Notificação do device
M.Sc. Márcio Palheta
32/35
Resultado do no emulador
Notificação da App
Notificação do device
M.Sc. Márcio Palheta
33/35
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
34/35
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
Capítulo 09: Serviços em Background