Intent-Filter - conceito básico

Top  Previous  Next

São 2 projetos. O primeiro é o projeto que irá "ouvir" as intenções do S.O. será invisível e não aparece no launcher. O outro irá solicitar essa intenção.


Projeto 1 - Ouvidor

java

 
package com.ouvidor;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

 

public class Tela1 extends Activity {

 

 @Override

 public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

 

         // chamada pela category default do android com Action "ACAO_TESTE"

         TextView text = new TextView(this);

         Bundle extras = getIntent().getExtras();

         if (extras != null) {

                 String msg = extras.getString("mensagem");

                 text.setText("Esta é a tela 1\nMensagem: " + msg);

         } else {

                 text.setText("Esta é a tela 1");

         }

         setContentView(text);

 }

}
 

AndroidManifest.xml

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

  package="com.ouvidor"

  android:versionCode="1"

  android:versionName="1.0" >

 

  <uses-sdk android:minSdkVersion="7" />

 

  <application

      android:icon="@drawable/ic_launcher"

      android:label="Tela1" >

      <activity android:name=".Tela1" >

          <intent-filter>

              <action android:name="ACAO_TESTE" />

              <category android:name="android.intent.category.DEFAULT" />

          </intent-filter>

      </activity>

  </application>

 

</manifest>

 


Projeto 2 - Teste

Basicamente um projeto com 1 botão que chama intenção ACAO_TESTE e o Android vai abrir automaticamente o primeiro projeto.

java

 
package com.testeintencao;

 

import com.testeintencao.R;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

 

public class TesteFiltroIntencaoActivity extends Activity {

 

 @Override

 public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         setContentView(R.layout.main);

 

         Button botao = (Button) findViewById(R.id.botao);

         botao.setOnClickListener(new View.OnClickListener() {

 

                 public void onClick(View arg0) {

                         Intent it;

                         it = new Intent("ACAO_TESTE");

                         it.putExtra("mensagem", "uma mensagem a ser enviada");

                         startActivity(it);

                 }

         });

 }

}
 

main.xml

 
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:orientation="vertical" >

 

  <Button

      android:id="@+id/botao"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Enviar intenção!" />

 

</LinearLayout>