Escolar Documentos
Profissional Documentos
Cultura Documentos
| Android On Board
Android On Board
Essa classe permite realizar requisições que podem ser atendidas tanto pela sua própria aplicação
ou por aplicações de terceiros que estejam preparadas para atender essa requisição.
Essas requisições variam de uma simples troca de Activity, para uma solicitação de leitura de
código de barras de um aplicativo de terceiro.
É raro hoje em dia encontrar um aplicativo que tenha apenas uma tela, ou seja apenas uma
Activity.
Aplicativos móveis rodam em telas geralmente pequenas de modo que na maioria das vezes não
conseguimos exibir todas as funcionalidades do app em uma única Activity.
Tendo esse cenário em mãos temos que saber como trocar de Activitys.
Vamos a um exemplo
Imagine um aplicativo que tenha uma tela de Login onde o usuário tem que informar e-mail e
senha, após isso ele tem que pressionar o botão Entrar, para ser redirecionado para a tela de
Perfil.
Então por favor crie essas duas estruturas e lembre de informar ambas no AndroidManifest.xml.
Sabemos que a Activity de Login contará com um layout com dois EditText (E-mail e senha) e
um Bu on (Entrar).
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 1/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
2 xmlns:tools="http://schemas.android.com/tools (http://schemas.androi
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <EditText
8 android:id="@+id/edit_text_email"
9 android:layout_width="match_parent"
10 android:layout_height="wrap_content"
11 android:hint="E-mail" />
12
13 <EditText
14 android:id="@+id/edit_text_senha"
15 android:layout_width="match_parent"
16 android:layout_height="wrap_content"
17 android:hint="Senha" />
18
19 <Button
20 android:layout_width="match_parent"
21 android:layout_height="wrap_content"
22 android:onClick="onClickEntrar"
23 android:text="Entrar" />
24
25 </LinearLayout>
Repare que o botão possui a tag onClickEntrar, isso significa que ao ser pressionado o método
onClickEntrar da Activity na qual este layout foi vinculado será acionado.
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 2/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Analisando o código acima podemos ver que vinculamos o layout XML criado logo acima a nossa
Activity logo no método onCreate(Bundle savedInstance).
Neste bundle recém criado adicionamos o e-mail que o usuário digitou. Fazemos isso através do
método putString esse método recebe dois parâmetros um deles é a String email, e o segundo é
uma chave que informamos via a constante KEY_INFO_LOGIN.
Essa chave é utilizada no momento em que queremos recuperar o e-mail do Bundle. No caso na
Activity PerfilActivity.class. Veremos como recuperar informações do Bundle mais a frente.
Atente também que o Bundle possui vários outros métodos além do putString, isso significa que
ele esta apto a carregar uma grande variedade de tipos de dados.
Com o Bundle criado é a vez de criarmos a nossa Intent. Perceba que informamos no construtor
da Intent a Activity de origem representada pelo this e a classe da Activity que queremos
chamar no caso a PerfilActivity.class.
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 3/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Após a criação da Intent vinculamos o Bundle a ela, através do método putExtras da própria
Intent.
Agora é só disparar essa Intent. Fazemos isso através do método startActivity, presente na
própria Activity.
Este método recebe a Intent como parâmetro e após ser executado a Activity de nome
PerfilActivity.class tomara a frente da pilha de Activitys e ficará em contato com o usuário.
Um outro método muito importante que não foi exemplificado ainda mais será visto mais adiante
neste artigo é o startActivityForResult(Intent intent, int requestCode); este método faz
exatamente a mesma coisa que o método startActivity, no entanto ele aguarda uma resposta para
a requisição da Intent.
Exemplo:
Esta Activity estará vinculada a um layout XML muito simples que contará apenas com um
TextView que irá exibir o e-mail enviado pela Activity de Login.
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 4/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Agora você pode perceber a utilidade da constante KEY_INFO_LOGIN, ela é a chave para
recuperarmos a String e-mail informada na Activity de Login.
Agora vamos estudar funcionalidades um pouco mais complexas que podemos alcançar com o
auxílio da Intent.
Entenda a Intent como um pedido que o seu aplicativo faz para o Sistema Operacional Android.
Ao receber o pedido do seu app, o Android vai vasculhar em todos os aplicativos instalados no
dispositivo e irá verificar se algum deles esta preparado para atender o que o seu
aplicativo pediu.
Mas como o Android sabe qual aplicativo consegue atender determinada Intent?
Para estar apto a atender a solicitações via Intent, o aplicativo (que deseja atender a determinada
solicitação) deve informar uma IntentFilter no seu projeto.
Como o próprio nome indica, Intent é uma intenção e a IntentFilter é um filtro de intenção.
Então se você criar um aplicativo que tira fotos, e deseja compartilhar essa funcionalidade dele
com outros sistemas do Android, basta declarar uma IntentFilter la no AndroidManifest.xml
igual ao código abaixo:
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 5/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Se algum aplicativo executar a Intent de foto, o seu aplicativo será acionado. Em casos onde o
dispositivo tenha mais de um aplicativo capaz de gerenciar captura de imagens, aparecerá um
menu onde o usuário escolherá o app de sua preferência.
OBS: No decorrer do artigo teremos exemplos de como criar Intent’s. Dentre esses exemplos
demonstraremos como criar uma Intent que solicita a captura de foto.
O código abaixo mostra como criar e disparar uma Intent para o sistema operacional com o
intuito de buscar algum aplicativo que envie e-mail.
Se no dispositivo onde este app de exemplo for executado estiver instalado algum aplicativo que
registrou via IntentFilter ser capaz de enviar e-mail.
O sistema capaz de enviar e-mail será iniciado e conseguiremos enviar e-mail na nossa própria
aplicação sem ter a necessidade de desenvolver essa funcionalidade. Apenas utilizando um
sistema de terceiro, muito provavelmente o aplicativo do GMAIL.
Outro exemplo, nesse caso a Intent que estamos iniciando executará um video do youtube.
Essa Intent é utilizada para abrir websites. Nesse exemplo abriremos um video do Youtube.
Através da Intent abaixo, o aplicativo de chamadas telefônicas nativo do Android será acionado.
Ou eventualmente, um aplicativo de terceiro que implemente tal funcionalidade.
1 <uses-permission android:name="android.permission.CALL_PHONE"/>
A Intent abaixo irá procurar por um capaz de capturar imagens via câmera. Após o termino de
sua utilização, a imagem capturada poderá ser tratada através do método onActivityResult da
Activity que disparou a Intent.
Isto é feito porque utilizamos o método startActivityForResult para disparar essa Intent ao invés
do tradicional startActivity.
Usando esse método (startActivityForResult) estamos dizendo que esperamos uma resposta para
a requisição que estamos fazendo.
Vejamos o exemplo, logo abaixo o método que dispara a Intent de captura de imagem via
câmera:
1 @Override
2 protected void onActivityResult(int requestCode, int resultCode, Intent i
3 super.onActivityResult(requestCode, resultCode, intent);
4 if(requestCode == TAKE_PHOTO && resultCode == RESULT_OK) {
5 Bitmap thumbnail = (Bitmap) intent.getExtras().get("data");
6 imageView.setImageBitmap(thumbnail);
7 }
8 }
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 7/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Novos exemplos de Intent serão adicionados nesse artigo com o passar do tempo. Fique atento!
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 8/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Anúncios
REPORT THIS AD
REPORT THIS AD
Intent , Intent câmera Android , Intent E-mail , Intent Enviar E-mail Android ,
Telephone Intent
This entry was posted on Agosto 22, 2012, 2:58 am and is filed under Android, Câmera, Enviar E-
mail Android, Intent, Intent.ACTION_CALL, Intent.ACTION_SENDTO, Intent.ACTION_VIEW,
Telefonema. You can follow any responses to this entry through RSS 2.0. You can leave a
response, or trackback from your own site.
Como usar o intent para identificar se o link é para o tel: ou, Google Maps, WhatsApp e
dentre outras? Obrigado
Marvelous, what a webpage it is! This weblog gives valuable information to us, keep it up.|
Estou com uma dúvida. É possível inserir uma nova tela em um app já pronto e fazer com que
essa nova tela apareça primeiro? Não seria uma splashscreen, mas sim uma nova tela com
botão que, ao ser clicado, levaria ao app.
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 9/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Grato
Oi, Leonardo
Me encontrei com mais um problema. No seu último exemplo, o intent de tirar fotos, o
parametro “TAKE_PHOTO” e “imagemView” não são reconhecidos pelo programa. Será que
eu coloquei os métodos “onClickCamera” e “onActivityResult” nos lugares certos? Bem, eu
coloquei eles no PerfilActivity.java,fora do onCreate, mas deu errado.
Kenji.
Oi,Leonardo.
Como sempre seus posts são muito bons! Parabéns de novo! Mas gostaria de saber, onde você
coloca o “”, sei que é no AndroidManifest.xml, mas é dentro de que tag? Eu estou colocando
no “”, mas quando clico no botão, ele diz que o programa parou.
código a seguir:
No PerfilActivity.java
————————————————————————————————–
No AndroidManifest.xml
Se você puder me ajudar, ficaria muito grato.Muito obrigado por esta ideia de compartilhar
seu conhecimento, vc não sabe o quanto eu procurei um lugar igual a esse blog! kkk
Até mais,Kenji
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 10/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
No AndroidManifest.xml
intent-filter
action android:name=”android.intent.action.VIEW”
category android:name=”android.intent.category.DEFAULT”
action android:name=”android.intent.action.SENDTO”
category android:name=”android.intent.category.DEFAULT”
uses-permission android:name=”android.permission.CALL_PHONE”
intent-filter
Ola Lucas,
Abraço.
Kenji.
Ola Wendell, muito obrigado pelo seu comentário! Fico muito feliz com seu feedback =]
Cara, estou me aventurando no mundo de desenvolvimento Android e queria lhe dizer que
seu blog é um oásis de informações relevantes. Sem contar a maneira bem detalhada que vc
escreve os artigos. Meus parabéns e muito obrigado pela sua atitude de propagar o
conhecimento.
Site no WordPress.com.
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 11/12
21/01/2019 Tudo sobre a classe Intent. | Android On Board
Curso
Curso de
de Farmácia
Biomedicina
Curso
Curso de
de Gestão Hospitalar
Segurança no Trabalho
Curso de Nutrição
Curso de Química (Licenciatura)
REPORT THIS AD
https://androiddevbr.wordpress.com/2012/08/22/o-poder-da-intent/ 12/12