Android06_Intent及其七大属性及intent-filter设置
Intent及其七大属性及intent-filter设置1、Intent intent = new Intent(MainActivity.this,NextActivity.class);2、intent.setClass(MainActivity.this, NextActivity.class);startActivity(intent);
- startActivity()
- startActivtyForResult()
Intent intent = new Intent();ComponentName cName = new ComponentName(MainActivity.this,NextActivity.class);ComponentName cName = new ComponentName(app间实现跳转"com.steven.testasyncloader.sqlitedata","com.steven.testasyncloader.sqlitedata.MainActivity");intent.setComponent(cName);startActivity(intent);
Intent intent = new Intent();intent.setAction("com.steven.android06lifecycle.nextactivity");startActivity(intent);//在配置文件中注册Activity的时候需要声明:<activity android:name="com.steven.android06lifecycle.NextActivity"><intent-filter><action android:name="com.steven.android06lifecycle.nextactivity" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>//当某个页面是默认启动页面时,需要定义Action、Category的属性必须为以下字符串:【设置任务入口】<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
| 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 | 显示拨号面板 |
| ACTION_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 | 用于选择Activity |
| 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 | 常量对应字符串 | 简单说明 |
| 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显示顶级程序列表中 |
| CATEGORY_INFO | android.intent.category.INFO | 用于提供包信息 |
| CATEGORY_HOME | android.intent.category.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可在车载环境下使用 |
- tel://:号码数据格式,后跟电话号码。
- mailto://:邮件数据格式,后跟邮件收件人地址。
- smsto://:短息数据格式,后跟短信接收号码。
- content://:内容数据格式,后跟需要读取的内容。
- file://:文件数据格式,后跟文件路径。
- market://search?q=pname:pkgname:市场数据格式,在Google Market里搜索包名为pkgname的应用。
- geo://latitude, longitude:经纬数据格式,在地图上显示经纬度所指定的位置。
(一)、拨打电话:Intent intent=new Intent();intent.setAction(Intent.ACTION_CALL);//intent.setAction("android.intent.action.CALL"); //以下各项皆如此,都有两种写法。intent.setData(Uri.parse("tel:1320010001"));startActivity(intent);(二)、利用Uri打开浏览器、打开地图等:Uri uri = Uri.parse("http://www.google.com"); //浏览器Uri uri=Uri.parse("geo:39.899533,116.036476"); //打开地图定位Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setData(uri);startActivity(intent);
(三)、播放视频:Intent intent = new Intent();Uri uri = Uri.parse("file:///sdcard/media.mp4");intent.setAction(Intent.ACTION_VIEW);intent.setDataAndType(uri, "video/*");startActivity(intent);
- EXTRA_BCC:存放邮件密送人地址的字符串数组。
- EXTRA_CC:存放邮件抄送人地址的字符串数组。
- EXTRA_EMAIL:存放邮件地址的字符串数组。
- EXTRA_SUBJECT:存放邮件主题字符串。
- EXTRA_TEXT:存放邮件内容。
- EXTRA_KEY_EVENT:以KeyEvent对象方式存放触发Intent的按键。
- EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。
调用发送短信的程序Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setType("vnd.android-dir/mms-sms");intent.putExtra("sms_body", "信息内容...");startActivity(intent);//发送短信息Uri uri = Uri.parse("smsto:13200100001");Intent intent = new Intent();intent.setAction(Intent. ACTION_SENDTO );intent.setData(uri);intent.putExtra("sms_body", "信息内容...");startActivity( intent );//发送彩信,设备会提示选择合适的程序发送Uri uri = Uri.parse("content://media/external/images/media/23"); //设备中的资源(图像或其他资源)Intent intent = new Intent();intent.setAction(Intent. ACTION_SEND );intent.setType("image/png");intent.putExtra("sms_body", "内容");intent.putExtra(Intent.EXTRA_STREAM, uri);startActivity(it);(五)、发送Email:Intent intent=new Intent();intent.setAction(Intent. ACTION_SEND );String[] tos={"android1@163.com"};String[] ccs={"you@yahoo.com"};intent.putExtra(Intent.EXTRA_EMAIL, tos);intent.putExtra(Intent.EXTRA_CC, ccs);intent.putExtra(Intent.EXTRA_TEXT, "The email body text");intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");intent.setType("message/rfc822");startActivity(Intent.createChooser(intent, "Choose Email Client"));Intent intent = new Intent(Intent.ACTION_SEND);String[] tos = { "mobileservice@ablesky.com" };intent.putExtra(Intent.EXTRA_EMAIL, tos);intent.putExtra(Intent.EXTRA_TEXT, getPhoneParameter());intent.putExtra(Intent.EXTRA_SUBJECT, "Android日志");intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(cacheDir));intent.setType("message/rfc882");intent.setType("plain/text");Intent.createChooser(intent, "请选择邮件发送软件");startActivity(intent);intent.setAction(android.provider.Settings.ACTION_SETTINGS);
//选择图片 requestCode 返回的标识Intent intent = new Intent();intent.setAction(Intent. ACTION_GET_CONTENT );intent.setType( "image/*" );Intent wrapperIntent = Intent.createChooser(intent, null);startActivityForResult(wrapperIntent, requestCode);//添加音频Intent intent = new Intent();intent.setAction(Intent. ACTION_GET_CONTENT );intent.setType( "video/*" );Intent wrapperIntent = Intent.createChooser(intent, null);startActivityForResult(wrapperIntent, requestCode);//视频Intent intent = new Intent();intent.setAction(Intent. ACTION_GET_CONTENT );intent.setType( "video/*" );Intent wrapperIntent = Intent.createChooser(intent, null);startActivityForResult(wrapperIntent, requestCode);//录音Intent intent = new Intent();intent.setAction(Intent. ACTION_GET_CONTENT );intent.setType( "audio/amr" );intent.setClassName("com.android.soundrecorder","com.android.soundrecorder.SoundRecorder");startActivityForResult(intent, requestCode);
Intent intent = new Intent(this, MainActivity.class); //将Activity栈中处于MainActivity主页面之上的Activity都弹出。 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
publicvoid clickButton(View view) {
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
switch (view.getId()) {
case R.id.button_main_call:
intent.setAction(Intent.ACTION_CALL);//跳拨号界面
intent.setData(Uri.parse("tel:10086"));
break;
case R.id.button_main_dial:
intent.setAction(Intent.ACTION_DIAL);//拨打电话
intent.setData(Uri.parse("tel:10086"));
break;
case R.id.button_main_sms:
intent.setAction(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:10086"));//发送短信
intent.putExtra("sms_body", "该吃饭了,下课吧!");
break;
case R.id.button_main_setting:
intent.setAction("android.settings.SETTINGS");打开设置界面
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));打开网址
break;
case R.id.button_main_showimage:
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("mnt/sdcard/Download/landscape.jpg")),"image/*");打开图片
break;
case R.id.button_main_showtext:
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("mnt/sdcard/Download/info.txt")),"text/*");打开文本
break;
case R.id.button_main_home:
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.HOME");跳转home页面

浙公网安备 33010602011771号