Intent对Android的核心和灵魂,是各组件之间的桥梁。四大组件分别为Activity 、Service、BroadcastReceiver、ContentProvider。
而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。

Intent的中文意思为“意图”,在Android中可以理解为想要做什么,What do want to do? 所以什么时候要用到Intent就很好理解了。

显示网页:Uri uri = Uri.parse("http://www.google.com"); Intent it   = new Intent(Intent.ACTION_VIEW,uri); startActivity(it); 显示地图:Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.Action_VIEW,uri); startActivity(it); 路径规划: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:xxxxxx"); Intent it = new Intent(Intent.ACTION_DIAL, uri);   startActivity(it);   Uri uri = Uri.parse("tel.xxxxxx"); Intent it =new Intent(Intent.ACTION_CALL,uri); 要使用这个必须在配置文件中加入 发送SMS/MMS调用发送短信的程序Intent it = new Intent(Intent.ACTION_VIEW); it.putExtra("sms_body", "The SMS text"); it.setType("vnd.android-dir/mms-sms"); startActivity(it);   发送短信Uri uri = Uri.parse("smsto:0800000123"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "The SMS text"); startActivity(it);   发送彩信Uri uri = Uri.parse("content://media/external/images/media/23"); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra("sms_body", "some text"); it.putExtra(Intent.EXTRA_STREAM, uri); it.setType("image/png"); startActivity(it); 发送EmailUri uri = Uri.parse("mailto:xxx@abc.com"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); startActivity(it); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); it.putExtra(Intent.EXTRA_TEXT, "The email body text"); it.setType("text/plain"); startActivity(Intent.createChooser(it, "Choose Email Client"));   Intent it=new Intent(Intent.ACTION_SEND);     String[] tos={"me@abc.com"};     String[] ccs={"you@abc.com"};     it.putExtra(Intent.EXTRA_EMAIL, tos);     it.putExtra(Intent.EXTRA_CC, ccs);     it.putExtra(Intent.EXTRA_TEXT, "The email body text");     it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     it.setType("message/rfc822");     startActivity(Intent.createChooser(it, "Choose Email Client")); 添加附件Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "Choose Email Client")); 播放多媒体Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("file:///sdcard/song.mp3"); it.setDataAndType(uri, "audio/mp3"); startActivity(it); Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it);   Uninstall 程序Uri uri = Uri.fromParts("package", strPackageName, null); Intent it = new Intent(Intent.ACTION_DELETE, uri); startActivity(it); Install 程序Uri installUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); 
//搜索应用 Uri uri = Uri.parse("market://search?q=pname:pkg_name");   Intent it = new Intent(Intent.ACTION_VIEW, uri);   startActivity(it);   //where pkg_name is the full package path for an application   //显示指定应用的详细页面(这个好像不支持了,找不到app_id) Uri uri = Uri.parse("market://details?id=app_id");   Intent it = new Intent(Intent.ACTION_VIEW, uri);   startActivity(it);   //where app_id is the application ID, find the ID   //by clicking on your application on Market home   //page, and notice the ID from the address bar 


 

打开另一程序Intent i = new Intent();       ComponentName cn = new ComponentName("com.drip.android2",                       "com.drip.android2.AndroidSearch");             i.setComponent(cn);             i.setAction("android.intent.action.MAIN");             startActivityForResult(i, RESULT_OK);  打开联系人列表<1>                  Intent i = new Intent();        i.setAction(Intent.ACTION_GET_CONTENT);        i.setType("vnd.android.cursor.item/phone");        startActivityForResult(i, REQUEST_TEXT);         <2>       Uri uri = Uri.parse("content://contacts/people");       Intent it = new Intent(Intent.ACTION_PICK, uri);       startActivityForResult(it, REQUEST_TEXT);    打开录音机Intent mi = new Intent(Media.RECORD_SOUND_ACTION);             startActivity(mi);    从gallery选取图片   Inten t i = new Intent();    i.setType("image/*");           i.setAction(Intent.ACTION_GET_CONTENT);           startActivityForResult(i, 11);   打开照相机<1>Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);              this.sendBroadcast(i);        <2>long dateTaken = System.currentTimeMillis();             String name = createName(dateTaken) + ".jpg";             fileName = folder + name;             ContentValues values = new ContentValues();             values.put(Images.Media.TITLE, fileName);             values.put("_data", fileName);             values.put(Images.Media.PICASA_ID, fileName);             values.put(Images.Media.DISPLAY_NAME, fileName);             values.put(Images.Media.DESCRIPTION, fileName);             values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);             Uri photoUri = getContentResolver().insert(                       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);                           Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);             inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);             startActivityForResult(inttPhoto, 10);    播放多媒体Intent it = new Intent(Intent.ACTION_VIEW);    Uri uri = Uri.parse("file:///sdcard/song.mp3");    it.setDataAndType(uri, "audio/mp3");    startActivity(it);    或者   Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");      Intent it = new Intent(Intent.ACTION_VIEW, uri);      startActivity(it);        或者   Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");   returnIt = new Intent(Intent.ACTION_VIEW, playUri);   发送EmailUri uri = Uri.parse("mailto:xxx@abc.com");Intent it = new Intent(Intent.ACTION_SENDTO, uri);startActivity(it); 或者:Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_EMAIL, address);intent.putExtra(Intent.EXTRA_SUBJECT, filename);intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + filename)); ;intent.setType("text/csv");startActivity(Intent.createChooser(intent, "EMail File")); 或者:Intent it = new Intent(Intent.ACTION_SEND);it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");it.putExtra(Intent.EXTRA_TEXT, "The email body text");it.setType("text/plain");startActivity(Intent.createChooser(it, "Choose Email Client")); 或者:Intent it=new Intent(Intent.ACTION_SEND);String[] tos={"me@abc.com"};String[] ccs={"you@abc.com"};it.putExtra(Intent.EXTRA_EMAIL, tos);it.putExtra(Intent.EXTRA_CC, ccs);it.putExtra(Intent.EXTRA_TEXT, "The email body text");it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");it.setType("message/rfc822");startActivity(Intent.createChooser(it, "Choose Email Client")); 或者:Intent it = new Intent(Intent.ACTION_SEND);it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");sendIntent.setType("audio/mp3");startActivity(Intent.createChooser(it, "Choose Email Client")); 后台发送短信注册权限代码实现 :// 获取信息内容String message ;// 移动运营商允许每次发送的字节数据有限,我们可以使用Android给我们提供 的短信工具。if (message != null) {SmsManager sms = SmsManager.getDefault();// 如果短信没有超过限制长度,则返回一个长度的List。List texts = sms.divideMessage(message);for (String text : texts) {sms.sendTextMessage(“这里是接收者电话号码”,  “这里是发送者电话号码”,  “这里是短信内容”,  null, null);}}//说明sms.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent):destinationAddress:接收方的手机号码scAddress:发送方的手机号码text:信息内容sentIntent:发送是否成功的回执,DeliveryIntent:接收是否成功的回执, 从google搜索内容Intent intent = new Intent();    intent.setAction(Intent.ACTION_WEB_SEARCH);    intent.putExtra(SearchManager.QUERY,"searchString")    startActivity(intent);  
APK 安装Intent intent =new Intenet();String filepath="/SDCard/XXX.apk";
intent.setDataAndType(Uri.parse("file://" + filepath),"application/vnd.android.package-archive");starActivity(intent);

Activity之间的传递

Intent intent=new Intent();intent.setClass(MainActivity.this, SecondActivity.class);startActivity(intent);

带参数

详见下一篇文章 两个Activity的数据传递。


 

更多相关文章

  1. Android(安卓)签名详解
  2. Android程序中如何执行shell脚本
  3. Android之Android的数据存储--File
  4. android 分辨率调试
  5. Android程序有很多Activity,在B中如何关闭整个Android应用程序
  6. Android(安卓)开源项目维护者宣布退出
  7. Android(安卓)实例-个人理财工具 之一 启动界面实现
  8. Android(安卓)应用程序 生命周期
  9. Android(安卓)编译,打包、签程名详细教

随机推荐

  1. Android(安卓)ViewGroup onInterceptTouc
  2. android button 基本原理
  3. android 页面滑动
  4. Android(安卓)Manager之AudioManager(音
  5. Android(安卓)启动另外activity并返回结
  6. android通用文件操作
  7. 【流媒體】Android(安卓)实时视频采集方
  8. Android(安卓)ImageView图片拖动效果
  9. ubuntu下搭建android遇到的问题:SDK Manag
  10. fastadmin cas登录404错误