Intent的七大属性

时间:2021-09-25 16:29:23
Intent对象大致包括7大属性: ComponentName组件、Action动作 、  Category分类 、   Extra扩展  、Data数据 、Type类型、Flags 控制标记。
本文只包含前5种,Type和Flags会单独写。

包括了各种权限的设置,还有就是为了验证方便,MainActivity实现了OnClickListener接口,如果看不懂的话建议看一下button的监听方式。还有就是短信方面可能出现问题,因为本人在验证的时候会出现异常,Intent的七大属性
怀疑是模拟器没有发送短信功能,但是具体结果有待验证

package com.example.day06_intent;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener{
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private Button button6;
private Button button7;
private Button button8;
private Button button9;
private Button button10;
private Button button11;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1= (Button) findViewById(R.id.button1);
button2= (Button) findViewById(R.id.button2);
button3= (Button) findViewById(R.id.button3);
button4= (Button) findViewById(R.id.button4);
button5= (Button) findViewById(R.id.button5);
button6= (Button) findViewById(R.id.button6);
button7= (Button) findViewById(R.id.button7);
button8= (Button) findViewById(R.id.button8);
button9= (Button) findViewById(R.id.button9);
button10= (Button) findViewById(R.id.button10);
button11= (Button) findViewById(R.id.button11);

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);
button8.setOnClickListener(this);
button9.setOnClickListener(this);
button10.setOnClickListener(this);
button11.setOnClickListener(this);


}

@Override
public void onClick(View v) {
Intent intent =new Intent();
switch (v.getId()) {
//ComponentName
//1.通过ComponentName 跳转页面(平时用的是Intent的简版)
case R.id.button1:
ComponentName componentName1 =new ComponentName(MainActivity.this, NextActivity.class);
intent.setComponent(componentName1);

break;
//2.跳转到另外一个app(此时另外一个app需要先启动)
//实例化一个ComponentName需要两个参数,第一个参数是要启动应用的包名称,这个包名称是指清单文件中列出的应用的包名称:
// 第二个参数是你要启动的Activity或者Service的全称(包名+类名)
case R.id.button2:
ComponentName componentName2 =new ComponentName("com.example.day05_activity", "com.example.day05_activity.MainActivity");
intent.setComponent(componentName2);
break;
//3.隐式跳转
case R.id.button3:
intent.setAction("next");
break;
//4、拨打电话(需要权限)
case R.id.button4:
intent.setAction(intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
break;
//5、回到桌面
case R.id.button5:
intent.setAction(intent.ACTION_MAIN);
intent.addCategory(intent.CATEGORY_HOME);
break;
//6、打开拨号界面(并将号码设置好)
case R.id.button6:
intent.setAction(intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
break;

//7打开浏览器.别忘了联网权限
case R.id.button7:
intent.setAction(intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
break;
//8.发送短信,(只是打开界面并未发送,所以不需要发送短信权限)
case R.id.button8:
intent.setAction(intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:10086"));
intent.putExtra("sms_body", "sdfsdfkjslkjfdsd");
break;
//9打开设置界面
case R.id.button9:
intent.setAction("android.settings.SETTINGS");
break;
//10.打开WiFi设置
case R.id.button10:
intent.setAction("android.settings.WIFI_SETTINGS");
break;
//11.打开联系人列表
case R.id.button11:
intent.setAction("com.android.contacts.action.LIST_CONTACTS");
break;
default:
break;
}
startActivity(intent);
}

}