//创建一个显式的 Intent 对象(方法一:在构造函数中指定)
Intent intent = new Intent(Intent_Demo1.this, Intent_Demo1_Result1.class);
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.putExtras(bundle);
intent.putExtra("name", "bbb");
intent.putExtra("userInfo", new UserInfo(1, "name"));
startActivity(intent);
//创建一个显式的 Intent 对象(方法二:用 setClass 方法)
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.setClass(Intent_Demo1.this, Intent_Demo1_Result1.class);
intent.putExtras(bundle);
startActivity(intent);
//创建一个显式的 Intent 对象(方法三:用 setClass 方法)
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.setClassName(Intent_Demo1.this, "com.great.activity_intent.Intent_Demo1_Result1");
intent.putExtras(bundle);
startActivity(intent);
//创建一个显式的 Intent 对象(方法四:用 setComponent 方法)
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("id", strID);
//setComponent方法的参数:ComponentName
intent.setComponent(new ComponentName(Intent_Demo1.this, Intent_Demo1_Result1.class));
intent.putExtras(bundle);
startActivity(intent);
Intent隐式跳转 Action
//创建一个隐式的 Intent 对象:Action 动作
/**
* 这里指定的是 AndroidManifest.xml 文件中配置的
* <intent-filter>标签中的<action android:name="com.great.activity_intent.Intent_Demo1_Result3" />
* 所在的 Activity,注意这里都要设置 <category android:name="android.intent.category.DEFAULT" />
*/
Intent intent = new Intent();
<activity android:name="Intent_Demo1_Result3"
android:label="Intent_Demo1_Result3">
<intent-filter>
<action android:name="com.great.activity_intent.Intent_Demo1_Result3" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
//设置 Intent 的动作
intent.setAction("com.great.activity_intent.Intent_Demo1_Result3");
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.putExtras(bundle);
startActivity(intent);
//创建一个隐式的 Intent 对象:Category 类别
Intent intent = new Intent();
intent.setAction("com.great.activity_intent.Intent_Demo1_Result33");
/**
* 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category
* <category android:name="android.intent.category.DEFAULT" /> 除外,就可以访问该 Activity,
*/
intent.addCategory(Intent.CATEGORY_INFO);
intent.addCategory(Intent.CATEGORY_DEFAULT);
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.putExtras(bundle);
startActivity(intent);
Category 类别
//创建一个隐式的 Intent 对象:Category 类别
Intent intent = new Intent();
intent.setAction("com.great.activity_intent.Intent_Demo1_Result33");
/**
* 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category
* <category android:name="android.intent.category.DEFAULT" /> 除外,就可以访问该 Activity,
*/
intent.addCategory(Intent.CATEGORY_INFO);
intent.addCategory(Intent.CATEGORY_DEFAULT);
Bundle bundle = new Bundle();
bundle.putString("id", strID);
intent.putExtras(bundle);
startActivity(intent);
AndroidManifest.xml
<activity android:name="Intent_Demo1_Result2"
android:label="Intent_Demo1_Result2">
<intent-filter>
<category android:name="android.intent.category.INFO" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Date 数据 跳转
1 //创建一个隐式的 Intent 对象,方法四:Date 数据 2 Intent intent = new Intent(); 3 Uri uri = Uri.parse("http://www.great.org:8080/folder/subfolder/etc/abc.pdf"); 4 5 //注:setData、setDataAndType、setType 这三种方法只能单独使用,不可共用 6 //要么单独以 setData 方法设置 URI 7 //intent.setData(uri); 8 //要么单独以 setDataAndType 方法设置 URI 及 mime type 9 intent.setDataAndType(uri, "text/plain");10 //要么单独以 setDataAndType 方法设置 Type11 //intent.setType("text/plain");12 13 /**14 * 不指定 Category 或 只指定 AndroidManifest.xml 文件中 <intent-filter> 标签中配置的任意一个 Category15 * <category android:name="android.intent.category.DEFAULT" /> 除外,就可以访问该 Activity16 */17 Bundle bundle = new Bundle();18 bundle.putString("id", strID);19 intent.putExtras(bundle);20 startActivity(intent);
AndroidManifest.xml
<activity android:name="Intent_Demo1_Result2"
android:label="Intent_Demo1_Result2">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="http"
android:host="www.great.org"
android:port="8080"
android:pathPattern=".*pdf"
android:mimeType="text/plain"/>
</intent-filter>
</activity>
调用系统的的组件
//web浏览器
Uri uri= Uri.parse("http://www.baidu.com:8080/image/a.jpg");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
//地图(要在 Android 手机上才能测试)
Uri uri = Uri.parse("geo:38.899533,-77.036476");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
//路径规划
Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
//拨打电话-调用拨号程序
Uri uri = Uri.parse("tel:15980665805");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
//拨打电话-直接拨打电话
//要使用这个必须在配置文件中加入<uses-permission android:name="android.permission.CALL_PHONE"/>
Uri uri = Uri.parse("tel:15980665805");
Intent intent = new Intent(Intent.ACTION_CALL, uri);
startActivity(intent);
//调用发送短信程序(方法一)
Uri uri = Uri.parse("smsto:15980665805");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);
//调用发送短信程序(方法二)
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("sms_body", "The SMS text");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
//发送彩信
Uri uri = Uri.parse("content://media/external/images/media/23");
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("sms_body", "some text");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/png");
startActivity(intent);
//发送Email(方法一)(要在 Android 手机上才能测试)
Uri uri = Uri.parse("mailto:zhangsan@gmail.com");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(intent);
//发送Email(方法二)(要在 Android 手机上才能测试)
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:zhangsan@gmail.com"));
intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
intent.putExtra(Intent.EXTRA_TEXT, "这是内容");
startActivity(intent);
//发送Email(方法三)(要在 Android 手机上才能测试)
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
intent.putExtra(Intent.EXTRA_TEXT, "这是内容");
intent.setType("text/plain");
//选择一个邮件客户端
startActivity(Intent.createChooser(intent, "Choose Email Client"));
//发送Email(方法四)(要在 Android 手机上才能测试)
Intent intent = new Intent(Intent.ACTION_SEND);
//收件人
String[] tos = {"to1@abc.com", "to2@abc.com"};
//抄送人
String[] ccs = {"cc1@abc.com", "cc2@abc.com"};
//密送人
String[] bcc = {"bcc1@abc.com", "bcc2@abc.com"};
intent.putExtra(Intent.EXTRA_EMAIL, tos);
intent.putExtra(Intent.EXTRA_CC, ccs);
intent.putExtra(Intent.EXTRA_BCC, bcc);
intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
intent.putExtra(Intent.EXTRA_TEXT, "这是内容");
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent, "Choose Email Client"));
//发送Email且发送附件(要在 Android 手机上才能测试)
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
intent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mp3/醉红颜.mp3");
intent.setType("audio/mp3");
startActivity(Intent.createChooser(intent, "Choose Email Client"));
//播放媒体文件(android 对中文名的文件支持不好)
Intent intent = new Intent(Intent.ACTION_VIEW);
//Uri uri = Uri.parse("file:///sdcard/zhy.mp3");
Uri uri = Uri.parse("file:///sdcard/a.mp3");
intent.setDataAndType(uri, "audio/mp3");
startActivity(intent);
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
//音乐选择器
//它使用了Intent.ACTION_GET_CONTENT 和 MIME 类型来查找支持 audio/* 的所有 Data Picker,允许用户选择其中之一
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
//Intent.createChooser:应用选择器,这个方法创建一个 ACTION_CHOOSER Intent
startActivity(Intent.createChooser(intent, "选择音乐"));
Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
intent1.setType("audio/*");
Intent intent2 = new Intent(Intent.ACTION_CHOOSER);
intent2.putExtra(Intent.EXTRA_INTENT, intent1);
intent2.putExtra(Intent.EXTRA_TITLE, "aaaa");
startActivity(intent2);
// //设置壁纸
// Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
// startActivity(Intent.createChooser(intent, "设置壁纸"));
//卸载APK
//fromParts方法
//参数1:URI 的 scheme
//参数2:包路径
//参数3:
Uri uri = Uri.fromParts("package", "com.great.activity_intent", null);
Intent intent = new Intent(Intent.ACTION_DELETE, uri);
startActivity(intent);
//安装APK(???)
Uri uri = Uri.fromParts("package", "com.great.activity_intent", null);
Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri);
startActivity(intent);
//调用搜索
Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, "android");
startActivity(intent);