Intent组件
思维导图如下:
Intent的解析机制
直接Intent:
public class IntentActivity extends Activity {
public void intentTest() {
//创建一个Intent对象
Intent intent = new Intent();
//指定Intent对象的目标组件是SecondActivity
intent.setClass(IntentActivity.this, SecondActivity.class);
}
间接Intent:
在AndroidManifest.xml配置文件中
<!-- Activity配置-->
<activity android:name=".FirstActivity"
android:label="My Application">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- 应用程序入口-->
<category android:name="android.intent.category.LAUNCHER" />
<!-- 该活动优先级最高-->
</intent-filter>
</activity>
Intent调用常用组件
在之前的IntentActivity类中写的:
/**
* Intent调用方法
*/
//启动浏览器
public void intentTest1() {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
}
//启动浏览器并前往http://www.google.com
//启动拨号程序
public void intentTest2() {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:138"));
startActivity(intent);
}
//启动拨号程序并输入号码”138“
//通话
public void intentTest3() {
Uri uri=Uri.parse("tel:138");
Intent intent = new Intent(Intent.ACTION_CALL, uri);
startActivity(intent);
}
//拨打号码138.需要为程序申请权限<uses-permission android:name=" android.permission.CALL_PHONE" />
//发送短信
@SuppressLint("IntentReset")
public void intentTest4() {
String url = null;
Uri smsUri=Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, smsUri);
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
}
//启动短信程序
//启动通讯录
public void intentTest5() {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/1"));
startActivity(intent);
}
//启动通讯录的某一条目
//启动地图程序
public void intentTest6() {
String url = null;
Uri mapUri=Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, mapUri);
startActivity(intent);
}
//启动地图程序
//启动邮件程序
public void intentTest7() {
Uri uri=Uri.parse("mailto:xxx@example.com");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra(Intent.EXTRA_SUBJECT,"Hello world");
intent.putExtra(Intent.EXTRA_TEXT,"Ganbarimasu");
startActivity(intent);
}
//启动邮件程序并将收件人设为xxx.@example.com,邮件主题设为Hello world,内容设为Ganbarimasu
//启动邮件程序并添加多个收件人
public void intentTest8() {
Intent intent = new Intent(Intent.ACTION_SEND);
String