• Nenhum resultado encontrado

Intent StartActivityForResult Intent Filter

N/A
N/A
Protected

Academic year: 2021

Share "Intent StartActivityForResult Intent Filter"

Copied!
82
0
0

Texto

(1)

Prof. Filipe Nunes Ribeiro

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

COMPUTAÇÃO MÓVEL

(2)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Coração do Android

Uma 

Intent está em presente em todos os lugares e 

representa uma mensagem da aplicação para o sistema 

operacional, solicitando que algo seja realizado. Tem um 

importante papel na arquitetura do 

Android para 

integrar diferentes aplicações.

(3)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Uma 

Intent representa a intenção de uma aplicação de 

realizar alguma ação

Enviar uma mensagem para o sistema operacional

Abrir uma nova tela da Aplicação (startActivity)

Solicitar ao SO que ligue para determinado número

abrir o browser em um determinado endereço

exibir algum endereço, localização ou rota no Google Maps e 

muito mais

(4)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Navegação entre telas e envio de parâmetros

Este código cria uma mensagem para o sistema 

operacional, cujo conteúdo é:

(5)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Nem sempre uma Intent é recebida pela própria 

aplicação que a criou.

(6)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Construtor Intent com um parâmetro String

Que representa uma ação

Pode receber qualquer valor que faça sentido para a 

(7)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Qual aplicação responderá essa mensagem?

A sua ou qualquer outra

Grande sacada do Android

(8)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

Intents nativas de Android

Abrir Browser

(9)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(10)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

Abrindo o Browser

Intent.ActionView

No Listener do Botão

(11)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

URI 

(android.net.URI) – Uniform Resource Identifier ­ representa a 

(12)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(13)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(14)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

ExemploAbrirBrowser.java ­ Continuação

(15)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

Acabou?

Quase

É preciso solicitar a permissão para utilizar a Internet na 

aplicação

Permissões são utilizadas para controlar o acesso às 

funcionalidades que podem impactar o que o usuário está 

fazendo no momento e para prevenir que nada seja 

executado sem a permissão do usuário.

(16)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

AndroidManifest.xml

Fora da tag <application> devem ser inseridas as 

permissões necessárias. 

(17)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(18)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(19)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(20)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(21)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(22)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – AÇÕES PADRÃO

(23)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – RETORNO DE ACTIVITY

Como obter um retorno de uma Activity?

No exemplo de contatos não faz sentido se não obtemos 

(24)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(25)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Onde usar o retorno de uma Activity?

Selecionar um elemento de uma lista (contatos)

Quaisquer tipos de cadastros que se retorna um objeto 

cadastrado

Etc.

(26)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Aplicar o retorno de um resultado para um exemplo de 

(27)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

O que vamos fazer?

Tela1

Tela2

Ao clicar no botão

cadastrar novo aluno

a tela de cadastro é

aberta. Depois de

inserir o dados e clicar

em Confirmar os

dados serão

retornados para a

Activity inicial (ver

próximo slide)

(28)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

O que vamos fazer?

Tela1

Dados

(29)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Passos

1 ­ Mudança na forma de inicializar a Activity 

2 ­ Envio do retorno pela Activity chamada

(30)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Nova forma de inicializar a Activity Tela2 

Na tela 1 quando clicar no botão cadastrar aluno. 

O segundo parâmetro é um inteiro para identificar qual tela está sendo 

inicializada. Esse inteiro é importante para no momento do retorno 

saber de qual tela está voltando. Por isso a criação de uma constante 

(static final) como abaixo.

(31)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(32)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Activity chamada (Tela2) deve enviar resultado

Construtor vazio.

Não será criada

uma nova tela e

sim enviado um

retorno à tela de

origem

RESULT_OK: inteiro que indica se

ocorreu com sucesso a execução

da tela. Caso ocorra algum

problema deve ser enviado

RESULT_CANCELED

(33)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Activity da Tela 1 deve implementar o método 

onActivityResult

Inteiro passado como parâmetro na

(34)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

Activity da Tela 1 deve implementar o método 

(35)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(36)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(37)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(38)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(39)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(40)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(41)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(42)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(43)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(44)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(45)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – StartActivityForResult

(46)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

(47)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

Exemplos de como chamar aplicações nativas

Solicitar ao Google Maps que faça a busca pelo nome de 

(48)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

Exemplos de como chamar aplicações nativas

Solicitar ao Google Maps que exiba o dado de uma 

(49)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

Exemplos de como chamar aplicações nativas

(50)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

Exemplos de como chamar outras aplicações

(51)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT ­ CONCLUINDO

Exemplos de como chamar outras aplicações

(52)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – BARCODE SCANNER

Utilizando o Barcode Scanner para obter como retorno a 

decodificação de um código de barras.

A sua aplicação precisa inserir o seguinte código para 

chamar o BarcodeScanner

Variável inteira estática e final

declarada na aplicação.

(53)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – BARCODE SCANNER

(54)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT – BARCODE SCANNER

Barcode Scanner decodifica um código de barras e 

(55)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER – BARCODE SCANNER

(56)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT

OBS: Os códigos apresentados anteriormente estão 

disponíveis no site da disciplina

(57)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER – BARCODE SCANNER

(58)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

COMPUTAÇÃO MÓVEL

(59)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Filtro de ações que serão 

“interceptadas”

Tudo em Android é tratado como intenções certo?

Podemos, então, criar nossas próprias aplicações para 

substituir as seguintes:

Player

Browser

Home

(60)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Se o desenvolvedor deseja construir uma aplicação que 

responda a uma intenção “abrir um link em um browser”

Como fazer isso?

Adicionar um filtro de intenção (Intent­Filter) para a 

intenção 

ACTION_VIEW

(61)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

PAUSA

Até o momento já usamos o Intent­Filter

(62)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

(63)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

     Duas tags:

      Action – android.intent.action.MAIN

(64)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

     Duas tags:

      Action – android.intent.action.MAIN ­ Indica que a Activity pode ser 

utilizada como ponto de partida para a aplicação (similar ao método main). Se a 

activity está configurada com a ação MAIN, ela pode ser iniciada diretamente. 

Caso contrário será somente a partir do método startActivity(intent) 

(65)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

     Duas tags:

       Category – android.intent.category.LAUNCHER ­ Categoria que indica 

que a aplicação será exibida no menu de aplicações e poderá ser executada pelo 

usuário na tela inicial.

Obs: ao definir a categoria (category) LAUNCHER é obrigatório definir a ação 

(action) MAIN.

(66)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Definição mais completa sobre ação e categoria de um 

intent­filter

Ação (Action): define a ação que a Intent deseja realizar.

Ações­padrão

Intent.ACTION_VIEW

Intent.EDIT_ACTION

Intent.CALL_ACTION

(67)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

O desenvolvedor pode criar suas próprias Ações

Barcode Scanner: 

com.google.zxing.client.android.SCAN

OBTER_LOCALIZACAO_GPS

CADASTRAR_ALUNOS

TIRAR_FOTO

etc

(68)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Definição mais

 

completa sobre ação e categoria de um 

intent­filter:

Categoria (category):  a categoria é utilizada em conjunto 

com a ação para descobrir o que a intent deseja realizar.

Ao definir uma ação é preciso que ela tenha pelo menos 

uma categoria

Caso não se queira criar uma categoria específica pode­se 

criar a categoria DEFAULT.

(69)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

E se eu quiser que a minha aplicação seja inicializada 

com a seguinte linha de código?

De maneira similar ao BarcodeScanner

(70)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

O que é preciso fazer?

Acessar o arquivo manifest

Definir qual Activity será chamada externamente

Na definição da Activity escolhida se cria um intent­filter 

com a ação desejada

(71)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER – BARCODE SCANNER NO 

EMULADOR

Como usar o BarcodeScanner no emulador

É possível?

Não é possível testar a aplicação oficial Barcode Scanner no 

emulador

Como simular a utilização da aplicação de leitura de código de 

barras?

(72)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER – BARCODE SCANNER NO 

EMULADOR

Para qualquer outra aplicação ser executada com a 

Intent abaixo...

(73)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Criar uma aplicação com o mesmo Intent­Filter do 

Barcode Scanner

Como fazer isso?

1 ­ No manifest da nova aplicação insere­se o seguinte 

código. Não existe problema em ter mais de um intent­

filter em uma Activity.

(74)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Criar uma aplicação com o mesmo Intent­Filter do 

Barcode Scanner

Como fazer isso?

2 ­ Na Activity principal de uma nova aplicação podemos 

identificar, através do Intent que a gerou,  se ela foi 

chamada através da Action 

com.google.zxing.client.android.SCAN

(75)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Instala­se a aplicação no emulador

Agora temos uma aplicação que executa a intenção de 

Escanear um código de barras

(76)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

Pronto

No momento que chamarmos o BarcodeScanner

Ela será aberta ao invés do BarcodScanner

Observação: na figura ao lado a Intent foi

executada em um dispositivo móvel que

tinha o BarcodeScanner e a nova aplicação

criada com o Intent-Filter

com.google.zxing.cliente.android.SCAN. A

aplicação se chamava Alunos.

(77)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

No caso do emulador, se a aplicação BarcodeScanner não 

estiver instalada será chamada diretamente a nova 

aplicação que tem o Intent­Filter (no caso a aplicação 

Alunos).

Pronto! Agora basta implementar na 

aplicação desenvolvida um retorno

similar ao do BarcodeScanner

(78)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER

É possível criar Intent Filters para substituir aplicações 

nativas do Android

Browser

Agenda de Contatos

Home

Aplicação de discagem de telefones

(79)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER – SUBSTITUINDO A TELA 

HOME

Substituindo a tela HOME

Ao clicar no ícone da “casinha” (Home) teremos a seguinte 

Intent criada pelo Android

Dados obtidos com o Logcat

(80)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER ­ SUBSTITUINDO A TELA 

HOME

É preciso criar um Intent­Filter que registre o 

(81)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

INTENT­FILTER ­ SUBSTITUINDO A TELA 

HOME

Após instalar a aplicação no dispositivo a seguinte tela 

será exibida na tela quando a tecla Home for 

selecionada.

(82)

Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Aplicadas Departamento de Computação e Sistemas

REFERÊNCIAS

Android Developers Site 

http://developer.android.com,

Lecheta, R. 

Google Android  ­ Aprenda a criar aplicações 

para dispositivos móveis com o Android SDK. Segunda 

Edição. São Paulo: Novatec, 2010.

Referências

Documentos relacionados

Isso pode ser feito clicando o botão esquerdo do mouse e desenhando um retângulo ao redor dos arquivos a serem renomeados ou manter pressionado o Ctrl e clicar em cada um des-

Este trabalho apresenta as atividades realizadas na biblioteca do Colégio La Salle Núcleo Bandeirante: Semana da biblioteca, Semana da Arte, Hora do conto e a Kombi de livros que

abrigados nas instituições escolares da Rede Estadual de Ensino circunscritas ao município de Florianópolis integrante da 18° Secretaria Regional do governo de

Para promover a leitura, o acervo da biblioteca escolar pode ser, segundo UNESCO (1999), que expõe o seu manifesto sobre bibliotecas escolares, constituído por um acervo

Proporcionar momentos de prazer e alegria aos alunos e à toda comunidade do CSFX, com esse objetivo apresentamos o projeto Sarau Literário que busca resgatar e

Liver resection, as well as biliary drainage, is commonly employed and represents the ideal procedure in the treatment of intrahepatic lithiasis because it can remove the

é preciso redefinir o papel do professor, assumindo que o sistema de ensino atual é uma entidade diferente do que era há alguns anos atrás. Trata-se de uma ideia que é

1- Depositar em juízo os valores de royalties cobrados pela empresa e continuar sob os efeitos da ação coletiva proposta pela Famato e Sindicatos Rurais. Para isto,