1. Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。
  2. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤。
  3. Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。
  4. Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定;第二,通过Intent Filter过滤指定
  5. Intent启动不同组件的方法
  6. 组件名称  方法名称
  7. Activity  startActivity()  startActivityForResult()
  8. Service  startService()  bindService()
  9. Broadcasts  sendBroadcast()  sendOrderedBroadcast()  sendStickyBroadcast()
  10. 常见的Activity Action Intent常量
  11. 常量名称   常量值  意义
  12. ACTION_MAIN  android.intent.action.MAIN   应用程序入口
  13. ACTION_VIEW  android.intent.action.VIEW  显示数据给用户
  14. ACTION_ATTACH_DATA  android.intent.action.ATTACH_DATA  指明附加信息给其他地方的一些数据
  15. ACTION_EDIT  android.intent.action.EDIT  显示可编辑的数据
  16. ACTION_PICK  android.intent.action.PICK  选择数据
  17. ACTION_CHOOSER  android.intent.action.CHOOSER  显示一个Activity选择器
  18. ACTION_GET_CONTENT  android.intent.action.GET_CONTENT  获得内容
  19. ACTION_DIAL  android.intent.action.GET_CONTENT  显示打电话面板
  20. ACITON_CALL  android.intent.action.DIAL  直接打电话
  21. ACTION_SEND  android.intent.action.SEND  直接发短信
  22. ACTION_SENDTO  android.intent.action.SENDTO  选择发短信
  23. ACTION_ANSWER  android.intent.action.ANSWER  应答电话
  24. ACTION_INSERT  android.intent.action.INSERT  插入数据
  25. ACTION_DELETE  android.intent.action.DELETE  删除数据
  26. ACTION_RUN  android.intent.action.RUN  运行数据
  27. ACTION_SYNC  android.intent.action.SYNC  同步数据
  28. ACTION_PICK_ACTIVITY  android.intent.action.PICK_ACTIVITY  选择Activity
  29. ACTION_SEARCH  android.intent.action.SEARCH  搜索
  30. ACTION_WEB_SEARCH  android.intent.action.WEB_SEARCH  Web搜索
  31. ACTION_FACTORY_TEST  android.intent.action.FACTORY_TEST  工厂测试入口点
  32. 常见的BroadcastIntent Action常量  BroadcastIntent
  33. Action字符串常量  描述
  34. ACTION_TIME_TICK  系统时间每过一分钟发出的广播
  35. ACTION_TIME_CHANGED  系统时间通过设置发生了变化
  36. ACTION_TIMEZONE_CHANGED  时区改变
  37. ACTION_BOOT_COMPLETED  系统启动完毕
  38. ACTION_PACKAGE_ADDED  新的应用程序apk包安装完毕
  39. ACTION_PACKAGE_CHANGED  现有应用程序apk包改变
  40. ACTION_PACKAGE_REMOVED  现有应用程序apk包被删除
  41. ACTION_UID_REMOVED  用户id被删除
  42. Intent的Action和Data属性匹配
  43. Action属性  Data属性  说明
  44. ACTION_VIEW  content://contacts/people/1  显示id为1的联系人信息
  45. ACTION_DIAL  content://contacts/people/1  将id为1的联系人电话号码显示在拨号界面中
  46. ACITON_VIEW  tel:123  显示电话为123的联系人信息
  47. ACTION_VIEW  http://www.google.com  在浏览器中浏览该网站
  48. ACTION_VIEW  file://sdcard/mymusic.mp3  播放MP3
  49. ACTION_VIEW  geo:39.2456,116.3523  显示地图
  50. 常见的Category常量
  51. Category字符串常量  描述
  52. CATEGORY_BROWSABLE  目标Activity能通过在网页浏览器中点击链接而激活(比如,点击浏览器中的图片链接)
  53. CATEGORY_GADGET  表示目标Activity可以被内嵌到其他Activity当中
  54. CATEGORY_HOME  目标Activity是HOME Activity,即手机开机启动后显示的Activity,或按下HOME键后显示的Activity
  55. CATEGORY_LAUNCHER  表示目标Activity是应用程序中最优先被执行的Activity
  56. CATEGORY_PREFERENCE  表示目标Activity是一个偏爱设置的Activity
  57. 常见的Extra常量
  58. Extra键值字符串常量  描述
  59. EXTRA_BCC  装有邮件密送地址的字符串数组
  60. EXTRA_CC  装有邮件抄送地址的字符串数组
  61. EXTRA_EMAIL  装有邮件发送地址的字符串数组
  62. EXTRA_INTENT  使用ACTION_PICK_ACTIVITY动作时装有Intent选项的键
  63. EXTRA_KEY_EVENT  触发该Intent的案件的KeyEvent对象
  64. EXTRA_PHONE_NUMBER  使用拨打电话相关的Action时,电话号码字符串的键,类型为String
  65. EXTRA_SHORTCUT_ICON  使用ACTION_CREATE_SHORTCUT在HomeActivity创建快捷方式时,对快捷方式的描述信息。
  66. 其中ICON和ICON_RESOURCE描述的是快捷方式的图标,类型分别为Bitmap和ShortcutIconResource。INTENT描述的是快捷方式相对应的Intent对象。NAME描述的是快捷方式的名字。
  67. EXTRA_SHORTCUT_ICON_RESOURCE  EXTRA_SHORTCUT_INTENT  EXTRA_SHORTCUT_NAME  EXTRA_SUBJECT  描述信息主题的键
  68. EXTRA_TEXT  使用ACTION_SEND动作时,用来描述要发送的文本信息,类型为CharSequence
  69. EXTRA_TITLE  使用ACTION_CHOOSER动作时,描述对话框标题的键,类型为CharSequence
  70. EXTRA_UID  使用ACTION_UID_REMOVED动作时,描述删除的用户id的键,类型为int
  71. Android.telephony包中的类
  72. 类名  描述
  73. CellLocation  表示设备位置的抽象类
  74. PhoneNumberFormattingTextWather  监视一个TextView控件,如果有电话号码输入,则用formatNumber()方法处理电话号码
  75. PhoneNumberUtils  包含各种处理电话号码字符串的使用工具
  76. PhoneStateListener  监视手机中电话状态变化的监听类
  77. ServiceState  包含电话状态和相关的服务信息
  78. TelephonyManager  提供对手机中电话服务信息的访问
  79. 与短信服务相关的类主要在包android.telephony.gsm中
  80. 类名  描述
  81. GsmCellLocation  表示GSM手机的基站位置
  82. SmsManager  管理各种短信操作
  83. SmsMessage  表示具体的短信
  84. 1.Intent的用法:
  85. (1)用Action跳转
  86. 1、使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了相同的Action那么这个Intent就与这个目标Action匹配。如果这个IntentFilter段中没有定义 Type,Category,那么这个 Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明。
  87. Action 的值在Android中有很多预定义,如果你想直接转到你自己定义的Intent接收者,你可以在接收者的IntentFilter 中加入一个自定义的Action值(同时要设定 Category值为"android.intent.category.DEFAULT"),在你的Intent中设定该值为Intent的 Action,就直接能跳转到你自己的Intent接收者中。因为这个Action在系统中是唯一的。
  88. 2,data/type,你可以用Uri 来做为data,比如Uri uri = Uri.parse(http://www.google.com);
  89. Intent i = new Intent(Intent.ACTION_VIEW,uri);手机的Intent分发过程中,会根据http://www.google.com 的scheme判断出数据类型type 。手机的Brower则能匹配它,在Brower的Manifest.xml中的IntenFilter中 首先有ACTION_VIEW Action,也能处理http:的type,
  90. 3, 至于分类Category,一般不要去在Intent中设置它,如果你写Intent的接收者,就在Manifest.xml的Activity的 IntentFilter中包含android.category.DEFAULT,这样所有不设置 Category(Intent.addCategory(String c);)的Intent都会与这个Category匹配。
  91. 4,extras(附 加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动 作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。
  92. (2)用类名跳转
  93. Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描 述,Android则根据此Intent的描述, 负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。Intent传递过程中,要找 到目标消费者(另一个Activity,IntentReceiver或Service),也就是Intent的响 应者。
  94. Intent intent = new Intent();
  95. intent.setClass(context, targetActivy.class);
  96. //或者直接用 Intent intent = new Intent(context, targetActivity.class);
  97. startActivity(intent);
  98. 不过注意用类名跳转,需要在AndroidManifest.xml中申明activity
  99. <activity android:name="targetActivity"></activity>
  100. 2.几种Intent的用法
  101. android 中intent是经常要用到的。不管是页面牵转,还是传递数据,或是调用外部程序,系统功能都要用到intent。在做了一些intent的例子之后,整理了一下intent,希望对大家有用。由于intent内容太多,不可能真的写全,难免会有遗落,以后我会随时更新。如果你们有疑问或新的intent内容,希望交流。
  102. ★intent大全:
  103. 1.从google搜索内容
  104. Intent intent = new Intent();
  105. intent.setAction(Intent.ACTION_WEB_SEARCH);
  106. intent.putExtra(SearchManager.QUERY,"searchString")
  107. startActivity(intent);
  108. 2.浏览网页
  109. Uri uri = Uri.parse("http://www.google.com");
  110. Intent it  = new Intent(Intent.ACTION_VIEW,uri);
  111. startActivity(it);
  112. 3.显示地图
  113. Uri uri = Uri.parse("geo:38.899533,-77.036476");
  114. Intent it = new Intent(Intent.Action_VIEW,uri);
  115. startActivity(it);
  116. 4.路径规划
  117. Uri uri = Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
  118. Intent it = new Intent(Intent.ACTION_VIEW,URI);
  119. startActivity(it);
  120. 5.拨打电话
  121. Uri uri = Uri.parse("tel:xxxxxx");
  122. Intent it = new Intent(Intent.ACTION_DIAL, uri);
  123. startActivity(it);
  124. 6.调用发短信的程序
  125. Intent it = new Intent(Intent.ACTION_VIEW);
  126. it.putExtra("sms_body", "The SMS text");
  127. it.setType("vnd.android-dir/mms-sms");
  128. startActivity(it);
  129. 7.发送短信
  130. Uri uri = Uri.parse("smsto:0800000123");
  131. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  132. it.putExtra("sms_body", "The SMS text");
  133. startActivity(it);
  134. String body="this is sms demo";
  135. Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));
  136. mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
  137. mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);
  138. mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);
  139. startActivity(mmsintent);
  140. 8.发送彩信
  141. Uri uri = Uri.parse("content://media/external/images/media/23");
  142. Intent it = new Intent(Intent.ACTION_SEND);
  143. it.putExtra("sms_body", "some text");
  144. it.putExtra(Intent.EXTRA_STREAM, uri);
  145. it.setType("image/png");
  146. startActivity(it);
  147. StringBuilder sb = new StringBuilder();
  148. sb.append("file://");
  149. sb.append(fd.getAbsoluteFile());
  150. Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null));
  151. // Below extra datas are all optional.
  152. intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject);
  153. intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
  154. intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString());
  155. intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode);
  156. intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent);
  157. startActivity(intent);
  158. 9.发送Email
  159. Uri uri = Uri.parse("mailto:xxx@abc.com");
  160. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  161. startActivity(it);
  162. Intent it = new Intent(Intent.ACTION_SEND);
  163. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");
  164. it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  165. it.setType("text/plain");
  166. startActivity(Intent.createChooser(it, "Choose Email Client"));
  167. Intent it=new Intent(Intent.ACTION_SEND);
  168. String[] tos={"me@abc.com"};
  169. String[] ccs={"you@abc.com"};
  170. it.putExtra(Intent.EXTRA_EMAIL, tos);
  171. it.putExtra(Intent.EXTRA_CC, ccs);
  172. it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  173. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  174. it.setType("message/rfc822");
  175. startActivity(Intent.createChooser(it, "Choose Email Client"));
  176. Intent it = new Intent(Intent.ACTION_SEND);
  177. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  178. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");
  179. sendIntent.setType("audio/mp3");
  180. startActivity(Intent.createChooser(it, "Choose Email Client"));
  181. 10.播放多媒体
  182. Intent it = new Intent(Intent.ACTION_VIEW);
  183. Uri uri = Uri.parse("file:///sdcard/song.mp3");
  184. it.setDataAndType(uri, "audio/mp3");
  185. startActivity(it);
  186. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
  187. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  188. startActivity(it);
  189. 11.uninstall apk
  190. Uri uri = Uri.fromParts("package", strPackageName, null);
  191. Intent it = new Intent(Intent.ACTION_DELETE, uri);
  192. startActivity(it);
  193. 12.install apk
  194. Uri installUri = Uri.fromParts("package", "xxx", null);
  195. returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
  196. 13. 打开照相机
  197. <1>Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);
  198. this.sendBroadcast(i);
  199. <2>long dateTaken = System.currentTimeMillis();
  200. String name = createName(dateTaken) + ".jpg";
  201. fileName = folder + name;
  202. ContentValues values = new ContentValues();
  203. values.put(Images.Media.TITLE, fileName);
  204. values.put("_data", fileName);
  205. values.put(Images.Media.PICASA_ID, fileName);
  206. values.put(Images.Media.DISPLAY_NAME, fileName);
  207. values.put(Images.Media.DESCRIPTION, fileName);
  208. values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);
  209. Uri photoUri = getContentResolver().insert(
  210. MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
  211. Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  212. inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
  213. startActivityForResult(inttPhoto, 10);
  214. 14.从gallery选取图片
  215. Intent i = new Intent();
  216. i.setType("image/*");
  217. i.setAction(Intent.ACTION_GET_CONTENT);
  218. startActivityForResult(i, 11);
  219. 15. 打开录音机
  220. Intent mi = new Intent(Media.RECORD_SOUND_ACTION);
  221. startActivity(mi);
  222. 16.显示应用详细列表
  223. Uri uri = Uri.parse("market://details?id=app_id");
  224. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  225. startActivity(it);
  226. //where app_id is the application ID, find the ID
  227. //by clicking on your application on Market home
  228. //page, and notice the ID from the address bar
  229. 刚才找app id未果,结果发现用package name也可以
  230. Uri uri = Uri.parse("market://details?id=<packagename>");
  231. 这个简单多了
  232. 17寻找应用
  233. Uri uri = Uri.parse("market://search?q=pname:pkg_name");
  234. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  235. startActivity(it);
  236. //where pkg_name is the full package path for an application
  237. 18打开联系人列表
  238. <1>
  239. Intent i = new Intent();
  240. i.setAction(Intent.ACTION_GET_CONTENT);
  241. i.setType("vnd.android.cursor.item/phone");
  242. startActivityForResult(i, REQUEST_TEXT);
  243. <2>
  244. Uri uri = Uri.parse("content://contacts/people");
  245. Intent it = new Intent(Intent.ACTION_PICK, uri);
  246. startActivityForResult(it, REQUEST_TEXT);
  247. 19 打开另一程序
  248. Intent i = new Intent();
  249. ComponentName cn = new ComponentName("com.yellowbook.android2",
  250. "com.yellowbook.android2.AndroidSearch");
  251. i.setComponent(cn);
  252. i.setAction("android.intent.action.MAIN");
  253. startActivityForResult(i, RESULT_OK);
  254. 20.调用系统编辑添加联系人(高版本SDK有效):
  255. Intent it = newIntent(Intent.ACTION_INSERT_OR_EDIT);
  256. it.setType("vnd.android.cursor.item/contact");
  257. //it.setType(Contacts.CONTENT_ITEM_TYPE);
  258. it.putExtra("name","myName");
  259. it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY,  "organization");
  260. it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL,"email");
  261. it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,"homePhone");
  262. it.putExtra(android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,
  263. "mobilePhone");
  264. it.putExtra(  android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,
  265. "workPhone");
  266. it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,"title");
  267. startActivity(it);
  268. 21.调用系统编辑添加联系人(全有效):
  269. Intent intent = newIntent(Intent.ACTION_INSERT_OR_EDIT);
  270. intent.setType(People.CONTENT_ITEM_TYPE);
  271. intent.putExtra(Contacts.Intents.Insert.NAME, "My Name");
  272. intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");
  273. intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE,Contacts.PhonesColumns.TYPE_MOBILE);
  274. intent.putExtra(Contacts.Intents.Insert.EMAIL, "com@com.com");
  275. intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE,                    Contacts.ContactMethodsColumns.TYPE_WORK);
  276. startActivity(intent);
  277. 转自:http://zheyiw.iteye.com/blog/1782665

常见的Activity Action Intent常量的更多相关文章

  1. Android 学习Activity(1)activity和intent

    工具是:JDK环境配置+SDK+ADT工具 一.Activity  主要作用: 1.用户与应用程序的接口 2.控件的容器 二.创建Activity要点:(在src中的目录下包里) 1.一个Activi ...

  2. 【转】Android Activity和Intent机制学习笔记----不错

    原文网址:http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html Activity Android中,Activity是所有程序的根 ...

  3. Android Activity和Intent机制学习笔记

    转自 http://www.cnblogs.com/feisky: Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具 ...

  4. Activity及Intent

    1.Activity 在一个Android应用程序中,Activity是为用户操作而展示的可视化界面.比如你要打电话,这个时候的拨号界面就是一个Activity,你要发短信给你的女朋友,这个短信窗口就 ...

  5. Android开发常见的Activity中内存泄漏及解决办法

    上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏. ...

  6. Activity 和 Intent

    Activity 和 Intent 一.Intent指向Activity 二.利用 Intent 向第二个 Activity 传数据 三.利用 Intent 接受第二个 Activity 的返回值 四 ...

  7. Android 常见的广播 action常量

    Intent.ACTION_AIRPLANE_MODE_CHANGED; //关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED; //充电状态,或者电池的电量发生 ...

  8. 【Android开发学习笔记】【第三课】Activity和Intent

    首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activi ...

  9. 5、四大组件之一-Activity与Intent

    一.Activity的定义及作用 1)官方定义:Activity是Android应用程序提供交互界面的一个重要组件 . 也是Android最重要的组件之一 2)Activity是业务类 , 是承载应用 ...

随机推荐

  1. redis-在乌班图下设置自动启动

    一.修改redis.conf 1.打开后台运行选项,默认情况下,Redis不在后台运行: daemonize yes 2.配置log文件地址,默认使用标准输入,即打印在命令行终端 的窗口上 logfi ...

  2. Linux错误代码

    #ifndef _I386_ERRNO_H #define _I386_ERRNO_H #define EPERM 1 /* Operation not permitted */ #define EN ...

  3. ARM&Linux 下驱动开发第二节

    驱动文件:qudong.c,make生成qudong.ko文件,烧录到ARM板上 #include<linux/init.h> #include<linux/module.h> ...

  4. jquery禁用右键、文本选择功能、复制按键的实现

    同时适合IE.firefox.谷歌浏览器下适用,经过筛选代码如下 //禁用右键.文本选择功能.复制按键 $(document).bind(“contextmenu”,function(){return ...

  5. Spring MVC整合Velocity

    Velocity模板(VM)语言介绍 Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由j ...

  6. 编辑器TP

    http://www.itshipin.com/blog/archives/category/php/thinkphp

  7. iOS开发——高级UI之OC篇&UIdatePicker&UIPickerView简单使用

    UIdatePicker&UIPickerView简单使用 /***************************************************************** ...

  8. 大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...

  9. C# Socket基础(一)之启动异步服务监听

    本文主要是以代码为主..NET技术交流群 199281001 .欢迎加入. //通知一个或多个正在等待的线程已发生事件. ManualResetEvent manager = new ManualRe ...

  10. 基于Ascensor.js全屏切换页面插件

    今天给大家分享一款基于Ascensor.js全屏切换页面插件,这款实例 适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...