Capítulo 09: Serviços em Background
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
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
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
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
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 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
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
Exercício 03: Incluir MP3 no projeto
●

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

M.Sc. Márcio Palheta

9/35
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
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
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
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
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
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
Exercício 05: SMSReceiver.onReceive()

M.Sc. Márcio Palheta

16/35
Exercício 05: SMSReceiver.onReceive()
Recuperar dados
do SMS

M.Sc. Márcio Palheta

17/35
Exercício 05: SMSReceiver.onReceive()
Usando o objeto
SmsMessage

M.Sc. Márcio Palheta

18/35
Exercício 05: SMSReceiver.onReceive()
Usando o objeto
SmsMessage

CreateFromPdu() transforma
um [ ]byte em SmsMessage

M.Sc. Márcio Palheta

19/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

20/35
Exercício 05: SMSReceiver.onReceive()

Tratar SMS de
um Aluno

M.Sc. Márcio Palheta

21/35
Exercício 05: SMSReceiver.onReceive()

Tratar SMS de
um Aluno
Tocar MP3

M.Sc. Márcio Palheta

22/35
Exercício 06: Autorização de escuta
●

Inclua nosso Receiver no AndroidManifest.xml:

M.Sc. Márcio Palheta

23/35
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
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
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
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
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
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
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
Resultado do no emulador
Notificação
do device

M.Sc. Márcio Palheta

31/35
Resultado do no emulador
Notificação
do device

Notificação da App

M.Sc. Márcio Palheta

32/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

33/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

M.Sc. Márcio Palheta

34/35
Capítulo 09: Serviços em Background

Capítulo 09 - Serviços em Background

  • 1.
  • 2.
    Instrutor ● Programador desde 2000 ● Alunode 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: ValidarNro 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: ValidarNro 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: Baixararquivo 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: Baixararquivo 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: IncluirMP3 no projeto ● Salve o arquivo sound.mp3 na pasta /res/raw/: M.Sc. Márcio Palheta 9/35
  • 10.
    Exercício 03: IncluirMP3 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: IncluirMP3 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 ● ● Agoravamos 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 ● ● Agoravamos 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 ● ● Agoravamos 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 ● ● Agoravamos 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.
  • 17.
    Exercício 05: SMSReceiver.onReceive() Recuperardados do SMS M.Sc. Márcio Palheta 17/35
  • 18.
    Exercício 05: SMSReceiver.onReceive() Usandoo objeto SmsMessage M.Sc. Márcio Palheta 18/35
  • 19.
    Exercício 05: SMSReceiver.onReceive() Usandoo objeto SmsMessage CreateFromPdu() transforma um [ ]byte em SmsMessage M.Sc. Márcio Palheta 19/35
  • 20.
    Exercício 05: SMSReceiver.onReceive() Usandoo 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.
    Exercício 05: SMSReceiver.onReceive() TratarSMS de um Aluno M.Sc. Márcio Palheta 21/35
  • 22.
    Exercício 05: SMSReceiver.onReceive() TratarSMS de um Aluno Tocar MP3 M.Sc. Márcio Palheta 22/35
  • 23.
    Exercício 06: Autorizaçãode escuta ● Inclua nosso Receiver no AndroidManifest.xml: M.Sc. Márcio Palheta 23/35
  • 24.
    Exercício 06: Autorizaçãode escuta ● Inclua nosso Receiver no AndroidManifest.xml: Definição de um BroadcastReceiver M.Sc. Márcio Palheta 24/35
  • 25.
    Exercício 06: Autorizaçãode 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çãode 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: SMSno 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: SMSno 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: SMSno 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: SMSno 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 noemulador Notificação do device M.Sc. Márcio Palheta 31/35
  • 32.
    Resultado do noemulador Notificação do device Notificação da App M.Sc. Márcio Palheta 32/35
  • 33.
    O que vema seguir? ● Integração via JSON ● Tarefas assíncronas e Barra de progresso ● Fragments ● Google Maps ● GPS M.Sc. Márcio Palheta 33/35
  • 34.
    Referências ● www.caelum.com.br ● d.android.com ● ● LECHETA, Ricardo. GoogleAndroid, 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.