您的位置:首页 > 移动开发 > Android开发

android学习之Intent隐式意图

2013-10-19 21:55 429 查看
隐式意图采用action动作,category类别和数据uri来匹配,示例代码如下:

activity1采用隐式意图转向activity2

首先要在activity2的manifest配置文件中对他的intent-filter进行配置,如果activity1的intent符合他的过滤条件则跳转

配置文件如下

<activity android:name="com.Activity2" android:label="@string/window_title">

<intent-filter>

<!-类别的名称可以随便起,最好有意义,我看其他的都是用的包名 android.intent.category.DEFAULT是方法内部加的,必须注册上,type和

data都有的话,activity1要采用setDataAndType来设置data和type,setType会把前面的设置清理掉->

<action android:name="com.other"/>

<category android:name="com.it"/>

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

<data android:scheme="zhenhua" android:host="www.zhenhua.com"/>

<data android:mimeType="image/*"></data>

</intent-filter>

</activity>

actiity1的代码如下:

public class Activity1 extends Activity {

Button btDirect;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

}

public void openActivity(View view){

/**

* 只要Intent中的Action和Category都出现在Intent-Filter中就能匹配到

*/

Intent intent = new Intent();//隐式意图激活Activity

intent.setAction("com.zhenhua.other");

intent.addCategory("com.zhenhua.it");//方法内部为Intent添加了android.intent.category.DEFAULT类别

//intent.setData(Uri.parse("zhenhua://www.zhenhua.com"));

//intent.setType("image/jpg");

intent.setDataAndType(Uri.parse("zhenhua://www.zhenhua.com"),"image/jpg");

startActivity(intent);

}

}

Activtiy2的代码如下:

public class Activity2 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.other_activity);

}

}

下面附几个常用的调用:

1、调用拨号:

// 调用系统自带拨号器设置拨号意图对象

Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.setData(Uri.parse("tel:" + phone));

// 激活意图,方法内部会自动为Intent添加类别android.intent.category.DEFAULT
startActivity(intent);

2、调用发短信

Uri uri = Uri.parse("smsto:10010");

Intent it = new Intent(Intent.ACTION_SENDTO, uri);

it.putExtra("sms_body", "102");

activity.startActivity(it);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: