capítulo 09 - serviços em background

35
Capítulo 09: Serviços em Background

Upload: marcio-palheta

Post on 11-Jun-2015

1.725 views

Category:

Education


2 download

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

TRANSCRIPT

Page 1: Capítulo 09 - Serviços em Background

Capítulo 09: Serviços em Background

Page 2: 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

[email protected]

● sites.google.com/site/marciopalheta

Page 3: Capítulo 09 - Serviços em Background

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

Page 4: Capítulo 09 - Serviços em Background

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);

Page 5: Capítulo 09 - Serviços em Background

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:

Page 6: Capítulo 09 - Serviços em Background

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:

Page 7: Capítulo 09 - Serviços em Background

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

Page 8: Capítulo 09 - Serviços em Background

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

Page 9: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

9/35

Exercício 03: Incluir MP3 no projeto

● Salve o arquivo sound.mp3 na pasta /res/raw/:

Page 10: Capítulo 09 - Serviços em Background

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

Page 11: Capítulo 09 - Serviços em Background

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

Page 12: Capítulo 09 - Serviços em Background

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:

Page 13: Capítulo 09 - Serviços em Background

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

Page 14: Capítulo 09 - Serviços em Background

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

Page 15: Capítulo 09 - Serviços em Background

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

Page 16: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

16/35

Exercício 05: SMSReceiver.onReceive()

Page 17: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

17/35

Exercício 05: SMSReceiver.onReceive()Recuperar dadosdo SMS

Page 18: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

18/35

Exercício 05: SMSReceiver.onReceive()

Usando o objeto SmsMessage

Page 19: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

19/35

Exercício 05: SMSReceiver.onReceive()

Usando o objeto SmsMessage

CreateFromPdu() transforma um [ ]byte em SmsMessage

Page 20: Capítulo 09 - Serviços em Background

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

Page 21: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

21/35

Exercício 05: SMSReceiver.onReceive()

Tratar SMS deum Aluno

Page 22: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

22/35

Exercício 05: SMSReceiver.onReceive()

Tratar SMS deum Aluno

Tocar MP3

Page 23: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

23/35

Exercício 06: Autorização de escuta

● Inclua nosso Receiver no AndroidManifest.xml:

Page 24: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

24/35

Exercício 06: Autorização de escuta

● Inclua nosso Receiver no AndroidManifest.xml:

Definição de umBroadcastReceiver

Page 25: Capítulo 09 - Serviços em Background

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

Page 26: Capítulo 09 - Serviços em Background

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

Page 27: Capítulo 09 - Serviços em Background

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

Page 28: Capítulo 09 - Serviços em Background

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

Page 29: Capítulo 09 - Serviços em Background

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

Page 30: Capítulo 09 - Serviços em Background

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

Page 31: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

31/35

Resultado do no emulador

Notificação do device

Page 32: Capítulo 09 - Serviços em Background

M.Sc. Márcio Palheta

32/35

Resultado do no emulador

Notificação da App

Notificação do device

Page 33: Capítulo 09 - Serviços em Background

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

Page 34: Capítulo 09 - Serviços em Background

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

Page 35: Capítulo 09 - Serviços em Background

Capítulo 09: Serviços em Background