Intent代表了启动某个程序组件的“意图“,实际上Intent对象不仅可以启动本应用内程序组件,也可启动Android系统的其它应用的程序组件,包括系统自带的程序组件——只要权限允许。
实际上Android内部提供了大量标准Action、Category常量。
以下为常用的标准Action常量
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_MAIN | Android.intent.action.MAIN | 应用程序入口 |
ACTION_VIEW | android.intent.action.VIEW | 显示指定数据 |
ACTION_ATTACH_DATA | android.intent.action.ATTACH_DATA | 指明某块数据将被附加到给其他地方 |
ACTION_EDIT | android.intent.action.EDIT | 编辑指定数据 |
ACTION_PICK | android.intent.action.PICK | 从列表中选择某项,并返回所选的数据 |
ACTION_CHOOSER | android.intent.action.CHOOSER | 显示一个Activity选择器 |
ACTION_GET_CONTENT | android.intent.action.GET_CONTENT | 让用户选择数据,并返回所选数据 |
ACTION_DIAL | android.intent.action.DIAL | 显示拨号面板 |
ACITON_CALL | android.intent.action.CALL | 直接向指定用户打电话 |
ACTION_SEND | android.intent.action.SEND | 选择发短信 |
ACTION_SENDTO | android.intent.action.SENDTO | 直接发短信 |
ACTION_ANSWER | android.intent.action.ANSWER | 应答电话 |
ACTION_INSERT | android.intent.action.INSERT | 插入数据 |
ACTION_DELETE | android.intent.action.DELETE | 删除数据 |
ACTION_RUN | android.intent.action.RUN | 运行数据 |
ACTION_SYNC | android.intent.action.SYNC | 执行数据同步 |
ACTION_PICK_ACTIVITY | android.intent.action.PICK_ACTIVITY | 用于选择Activty |
ACTION_SEARCH | android.intent.action.SEARCH | 执行搜索 |
ACTION_WEB_SEARCH | android.intent.action.WEB_SEARCH | 执行Web搜索 |
ACTION_FACTORY_TEST | android.intent.action.FACTORY_TEST | 工厂测试的入口点 |
以下为常用的标准Category常量
常量名称 | 常量值 | 意义 |
---|---|---|
CATEGORY_DEFAULT | android.intent.category.DEFAULT | 默认的Category |
CATEGORY_BROWSABLE | android.intent.category.BROWSABLE | 指定Activity能被浏览器安全调用 |
CATEGORY_TAB | android.intent.category.TAB | 指定Activity作为TabActivity的TAB页 |
CATEGORY_LAUNCHER | android.intent.category.LAUNCHER | 表示目标Activity是应用程序中最优先被执行的Activity |
CATEGORY_INFO | android.intent.category.INFO | 用于提供包信息 |
CATEGORY_HOME | android.intent.category.HOME | 目标Activity是HOMEActivity,即手机开机启动后显示的Activity,或按下HOME键后显示的Activity |
CATEGORY_PREFERENCE | android.intent.category.PREFERENCE | 该Activity是参数面板 |
CATEGORY_TEST | android.intent.category.TEST | 该Activity是一个测试 |
CATEGORY_CAR_DOCK | android.intent.category.CAR_DOCK | 指定手机被插入汽车底座(硬件)时运行该Activity |
CATEGORY_DESK_DOCK | android.intent.category.DESK_DOCK | 指定手机被插入桌面底座(硬件)时运行该Activity |
CATEGORY_CAR_MODE | android.intent.category.CAR_MODE | 设置该Activity可在车载环境下使用 |
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_VIEW | android.intent.action.VIEW | 显示指定数据 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
String data = "http://www.baidu.com";
Uri uri = Uri.parse(data);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到浏览器搜索百度主页的界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_EDIT | android.intent.action.EDIT | 编辑指定数据 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
String data = "content://com.android.contacts/contacts/1";
Uri uri = Uri.parse(data);
intent.setAction(Intent.ACTION_EDIT);
intent.setData(uri);
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到编辑标识为1的联系人界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_DIAL | android.intent.action.DIAL | 显示拨号面板 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
String data = "tel:110";
Uri uri = Uri.parse(data);
intent.setAction(Intent.ACTION_DIAL);
intent.setData(uri);
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到向110的拨号界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACITON_CALL | android.intent.action.CALL | 直接向指定用户打电话 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("tel:10086");
Intent intent = new Intent(Intent.ACTION_CALL, uri);
startActivity(intent);
}
});
}
}
注意加上权限:<uses-permission android:name="android.permission.CALL_PHONE" />
点击按钮后,页面跳转到拨向10086的界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_SENDTO | android.intent.action.SENDTO | 直接发短信 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("smsto:10086");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到向10086的发送信息界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_WEB_SEARCH | android.intent.action.WEB_SEARCH | 执行Web搜索 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString");
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到浏览器搜索“searchString“的界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_DELETE | android.intent.action.DELETE | 删除数据 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.fromParts("package", getPackageName(), null);
Intent intent = new Intent(Intent.ACTION_DELETE, uri);
startActivity(intent);
}
});
}
}
点击按钮后,页面跳转到卸载该app的界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_GET_CONTENT | android.intent.action.GET_CONTENT | 让用户选择数据,并返回所选数据 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, 11);
}
});
}
}
点击按钮后,页面跳转到选择图片的界面。
常量名称 | 常量值 | 意义 |
---|---|---|
ACTION_PICK | android.intent.action.PICK | 从列表中选择某项,并返回所选的数据 |
使用实例:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.start_intent);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("content://contacts/people");
Intent intent = new Intent(Intent.ACTION_PICK, uri);
startActivityForResult(intent, 1);
}
});
}
}
点击按钮后,页面跳转到联系人列表的界面。