Você está na página 1de 3

Objetivo: Como j vimos nos outros laboratrios, as aplicaes podem se comunicar com outras no sistema Android atravs da classe

Intent. Vamos aprender neste laboratrio como fazer uma Activity criada por ns responder estmulos de qualquer aplicao. Passo a passo: 1) Abra o Eclipse IDE 2) Crie um novo Projeto Android com os seguintes dados (se tiver dvidas sobre a criao de um novo projeto, por favor, verifique o Laboratrio 4 Criando um projeto Ol Mundo): Project Name: IntentFilter Build Target: Google APIs Application name: IntentFilter Package name: br.com.curso.android.intentfilter Create Activity: Principal Min SDK Version: 8 3) Abra o arquivo /res/layout/main.xml, arraste um componente <Button>, ajuste o texto para Enviar Intent. Depois acerte a propriedade android:onClick para enviarIntent

4) Crie uma nova Activity chamada Atividade2: crie um layout xml em /res/layout/ chamado atividade2.xml como LinearLayout, arraste um componente <TextView> e coloque o texto de Esta a atividade 2. (Caso tenha dvidas sobre como criar uma nova Activity, por favor refaa o laboratrio que trata deste assunto).

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 1 de 3

5) Crie uma nova classe Java chamada Atividade2.java e ajuste o cdigo conforme imagem abaixo:

6) Mapeie a nova Activity no arquivo AndroidManifest.xml, conforme imagem abaixo:

Nota: A tag <intent-filter> o segredo para que a nossa Activity responda a estmulos do sistema. Definimos a propriedade <action android:name> para ATIVIDADE_2; isto significa que quando qualquer aplicao criar uma nova Intent que envie uma act ATIVIDADE_2, a nossa Activity ir ser notificada pelo sistema operacional e entrar em ao. Curiosidade: Os estmulos padro do Android tambm so enviados desta forma, por exemplo, quando chega uma ligao ou um SMS, o sistema operacional do Android envia uma Intent com um act padro com para que qualquer Activity registrada possa filtrar e ser acionada. Isto significa que possvel substituir qualquer aplicao nativa do telefone, basta que voc mapeie o evento correto. 7) Agora precisamos codificar o mtodo enviarIntent na classe Principal.java para que quando o usurio clicar no boto, a Intent seja enviada para o sistema operacional (lembre-

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 2 de 3

se que o mtodo enviarIntent foi mapeado na propriedade android:onClick do <Button> - vide passo 3):

8) Perceba que o mtodo enviarIntent cria uma nova Intent passando como parmetro (act) o texto ATIVIDADE_2, que exatamente o mesmo que mapeamos na propriedade <action android:name> da Atividade2 no arquivo AndroidManifest.xml. Isto envia uma mensagem para o sistema operacional que ir notificar qualquer Activity interessada neste sinal. 9) Execute a aplicao no emulador (RunAs Android Application) 10) Clique no boto Enviar Intent e veja que a Atividade2 surgir na tela 11) Olhe o LogCat e veja que foi enviada uma Intent act=ATIVIDADE_2 para o sistema operacional; qualquer Activity que estivesse registrada para reagir a este act, mesmo que fosse outra aplicao que voc no tem controle seria acionada; caso existam mais de uma Activity registrada, o Android exibe uma lista para que o usurio escolha qual aplicao ele deseja que seja executada.

Curiosidade: Voc pode substituir aplicativos padro do sistema Android desta forma; por exemplo, quando o usurio pressiona o boto Home do dispositivo, o Android envia um act android.intent.action.MAIN. Se voc quiser que sua aplicao seja a tela inicial, basta mapear no arquivo AndroidManifest.xml um <action android:name> com este nome. 12) Parabns. Voc agora j sabe como enviar Intents para o sistema operacional do Android e tambm sabe como mapear suas Acvtivities para que elas sejam acionadas por eles. Pesquise mais sobre o assunto! Mos Obra!
Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 3 de 3

Você também pode gostar