首页 > 代码库 > Action、Category、Data、Extras知识详解
Action、Category、Data、Extras知识详解
开头
Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。
诸如此类,都可以通过设置Intent属性来完成。
Intent主要有以下四个重要属性,它们分别为:
Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。
Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。
Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。
Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。常作为一个Intent,BroadCast Receiver等组件的传入数据使用!
以上的一些基本知识,还有一些约束希望大家可以自己去了解,具体可以参见<Android 4高级编程>这边书第五章
四个属性所有常量值如下所示:(写得快死掉,请大家转载要注明出处:http://blog.csdn.net/ljphhj)
为了让讲解起来比较有条理,我将按照自己捋的顺序来讲解这四个属性!
Data:
Uri.Parse(x字符串):[格式] | 意义 |
tel:电话号码 | 用于一些拨号的程序 |
mailto:收件人邮箱地址 | 用于发邮件的程序 |
smsto:短信收件人号码 | 用于发送短信的程序 |
content://内容数据格式 | 用于一些要读取数据内容的地方() |
file://文件路径 | 用于打开指定路径的文件 |
market://search?q=pname:pkgname:市场数据格式 | 在Google Market里搜索包名为pkgname的应用 |
geo:latitude,longitude | 在地图上显示指定经纬度的位置 |
http://xxx.xxxx.com | 在浏览器中打开一个网页 |
Action:
Activity Action
常量名称 | 意义 |
ACTION_MAIN | 应用程序入口 |
ACTION_VIEW | 显示数据给用户 |
ACTION_ATTACH_DATA | 指明附加信息给其他地方的一些数据 |
ACTION_EDIT | 显示可编辑的数据 |
ACTION_PICK | 选择数据 |
ACTION_CHOOSER | 显示一个Activity选择器 |
ACTION_GET_CONTENT | 获得内容 |
ACTION_DIAL | 显示打电话的拨号盘 |
ACITON_CALL | 直接打电话 |
ACTION_SEND | 直接发短信 |
ACTION_SENDTO | 选择发短信 |
ACTION_SEND_MULTIPLE | 共享多个二进制内容(MIME type类型) |
ACTION_ANSWER | 应答来电 |
ACTION_INSERT | 插入数据 |
ACTION_DELETE | 删除数据 |
ACTION_RUN | 运行数据 |
ACTION_SYNC | 同步数据 |
ACTION_PICK_ACTIVITY | 从数据项中选择一个子项目,并返回你所选中的项目Activity |
ACTION_SEARCH | 搜索 |
ACTION_SEARCH_LONG_PRESS | 搜索长按 |
转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj | |
ACTION_WEB_SEARCH | Web搜索 |
ACTION_FACTORY_TEST | 工厂测试入口点 |
ACTION_ALL_APPS | 列出所有能应用(相当于启动器Launcher) |
ACTION_BUG_REPORT | 显示出Bug报告 |
ACTION_CREATE_SHORTCUT | 创建具有“快捷方式”的Activity |
ACTION_FACTORY_TEST | 工厂测试的入口点 |
ACTION_INSERT_OR_EDIT | 插入并编辑新数据(添加联系人) |
ACTION_POWER_USAGE_SUMMARY | 显示电池的使用信息 |
ACTION_SET_WALLPAPER | 调用设置墙纸的Activity |
ACTION_SYSTEM_TUTORIAL | Start the platform-defined tutorial |
ACTION_VOICE_COMMAND | 开启语音命令Activity |
|
|
|
|
|
|
BroadCast Action
常量名称 | 意义 | |
ACTION_AIRPLANE_MODE_CHANGED | 判断是否开启“飞行模式” | |
ACTION_BATTERY_CHANGED | 监控电池状态改变 | |
ACTION_BATTERY_OKAY | 电池脱离“低电量”时达到正常状态 | |
ACTION_BOOT_COMPLETED | 在系统完成启动之后触发 | |
ACTION_CAMERA_BUTTON | 按下“按照”按钮时触发 | |
ACTION_CLOSE_SYSTEM_DIALOGS | 系统关闭时/按下Home键/锁屏等使系统窗口关闭的事件时通知 | |
ACTION_CONFIGURATION_CHANGED | 当“语言”发生改变时通知(只能通过registerReceiver来注册广播,不能在清单文件中注册)【不建议使用】 | |
ACTION_DATE_CHANGED | 日期改变 | |
ACTION_DEVICE_STORAGE_LOW | 设备内存不足时通知 | |
ACTION_DEVICE_STORAGE_OK | 设备内存情况恢复正常时通知 | |
ACTION_DOCK_EVENT | Dock 底座的通知(车载、家用、桌面等底座) | |
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE | 安装的APP从SD卡移动到系统空间 | |
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE | 安装的APP从系统空间移动到SD卡 | |
ACTION_GTALK_SERVICE_CONNECTED | 当GTalk连接上的时候通知 | |
ACTION_GTALK_SERVICE_DISCONNECTED | 当GTalk断开连接的时候通知 | |
ACTION_HEADSET_PLUG | 连接上外设的时候通知(耳机等) | |
ACTION_INPUT_METHOD_CHANGED | 输入法发生改变时通知 | |
ACTION_LOCALE_CHANGED | 当前系统区域位置改变时通知 | |
ACTION_MANAGE_PACKAGE_STORAGE | 当设备内存不足时(LOW),由用户发起这个广播通知,触发开启包管理器 | |
ACTION_MEDIA_BAD_REMOVAL | 未正确移除SD卡(正确移除SD卡的方法:设置--SD卡和设备内存--卸载SD卡),但已把SD卡取出来时发出的广播 广播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount) | |
ACTION_MEDIA_BUTTON | 按Media 键的时候通知 | |
ACTION_MEDIA_CHECKING | SD卡插入时挂载会发出该通知 | |
ACTION_MEDIA_EJECT | 当用户移除掉外部设备SD卡的时候,需要在这个广播通知内进行挂载点打开的全部文件的关闭处理,在这个通知中SD卡还可以读写,在收到ACTION_MEDIA_REMOVED、ACTION_MEDIA_UNMOUNTED等广播之后,sd 卡便不可以读写了! | |
ACTION_MEDIA_MOUNTED | SD卡被成功挂载 | |
ACTION_MEDIA_NOFS | 表示SD卡存在,但是文件系统不兼容或者尚未格式化 | |
ACTION_MEDIA_REMOVED | SD卡被移除 | |
ACTION_MEDIA_UNMOUNTED | SD卡已卸载 | |
ACTION_MEDIA_SHARED | SD卡进入USB连接模式 | |
ACTION_MEDIA_UNSHARED | SD卡退出USB连接模式 | |
ACTION_MEDIA_UNMOUNTABLE | SD卡存在,但是无法挂载 | |
ACTION_MEDIA_SCANNER_STARTED | 开始扫描 | |
ACTION_MEDIA_SCANNER_FINISHED | 结束扫描 | |
ACTION_MEDIA_SCANNER_SCAN_FILE | 正在扫描一个文件 | |
ACTION_NEW_OUTGOING_CALL | 拨出的电话会通知(可以做拨出电话的拦截) | |
转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj | ||
ACTION_PACKAGE_ADDED | 有应用程序被添加 | |
ACTION_PACKAGE_CHANGED | 有应用程序被改变 | |
ACTION_PACKAGE_DATA_CLEARED | 有应用程序数据被清除 | |
ACTION_PACKAGE_INSTALL | 有应用程序被安装(监控恶意软件) | |
ACTION_PACKAGE_REMOVED | 有应用程序被删除 | |
ACTION_PACKAGE_REPLACED | 有应用程序被替代 | |
ACTION_PACKAGE_RESTARTED | 有应用程序被重启 | |
ACTION_POWER_CONNECTED | 外接电源接入(或充电器)时通知 | |
ACTION_POWER_DISCONNECTED | 外接电源移除(或充电器)时通知 | |
ACTION_PROVIDER_CHANGED | 有的ContentProvider有自己的空间,这些空间我们想要接触,当有数据发生改变的时候,我们可以触发这个广播通知。 | |
ACTION_REBOOT | 设备重启通知 | |
ACTION_SCREEN_ON | 屏幕打开 | |
ACTION_SCREEN_OFF | 屏幕关闭 | |
ACTION_SHUTDOWN | 系统关机广播 | |
ACTION_TIME_CHANGED | 时间改变时通知 | |
ACTION_TIME_TICK | 以分钟为单位,一分钟触发一次,(不能在清单文件中定义,只能通过动态注册的方式) | |
ACTION_TIMEZONE_CHANGED | 时区改变时通知 | |
ACTION_UID_REMOVED | 用户UID被移除时通知 | |
ACTION_UMS_CONNECTED | 手机已进入大容量模式,但是没有消息说USB有没有连上 | |
ACTION_UMS_DISCONNECTED | 手机已退出容量模式 | |
ACTION_USER_PRESENT | 当用户屏幕解锁后通知 | |
ACTION_WALLPAPER_CHANGED | 壁纸改变的通知 | |
|
| |
|
Category:
常量名称 | 意义 |
CATEGORY_DEFAULT | Android系统中默认的执行方式,按照普通Activity的执行方式执行。 |
CATEGORY_ALTERNATIVE | 把要做的动作指定为在特定数据类型上执行的默认动作的可选项(如:一个联系人的默认动作为查看其信息,而可选的动作则是对其进行信息编辑) |
CATEGORY_CAR_DOCK | 指定手机被插入汽车底座(硬件)时运行该Activity |
CATEGORY_CAR_MODE | 设置该Activity可在车载环境下使用 |
CATEGORY_DESK_DOCK | 指定手机被插入桌面底座(硬件)时运行该Activity |
CATEGORY_PREFERENCE | 设置该组件为Preference。 |
CATEGORY_DEVELOPMENT_PREFERENCE | 说明Activity是一个设置面板 |
CATEGORY_EMBED | 说明可以运行在Activity容器内 |
CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST | 用来作为测试仪器测试框架下的代码 |
CATEGORY_HOME | 设置该组件为Home Activity。 |
CATEGORY_LAUNCHER | 设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN(Action)配合使用。 |
CATEGORY_BROWSABLE | 设置该组件可以使用浏览器启动。 |
CATEGORY_GADGET | 设置该组件可以内嵌到另外的Activity中。 |
转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj | |
CATEGORY_INFO | 用于提供包信息 |
CATEGORY_MONKEY | 说明可以被Monkey或者其他的测试工具执行 |
CATEGORY_OPENABLE | 用来指示一个ACTION_GET_CONTENT的intent, 希望可以ContentResolver.openInputStream可以打开URI |
CATEGORY_SAMPLE_CODE | 作为一个简单代码示例使用(用户一般不用这个) |
CATEGORY_SELECTED_ALTERNATIVE | 设置这个Activity是否可以被认为是用户当前选择的数据的一个可选择的Action(做插件扩展:http://www.cnblogs.com/xirihanlin/archive/2009/07/31/1536055.html) |
CATEGORY_TAB | 用于一个TabActivity中 |
CATEGORY_TEST | 用于一般的测试示例程序(一般用户不用) |
CATEGORY_UNIT_TEST | 用于单元测试 |
Extras:
EXTRA常量值 | 意义 |
EXTRA_ALARM_COUNT | 存放延迟的Pending Alarms的数量 |
EXTRA_BCC | 存放邮件密送人地址的字符串数组 |
EXTRA_CC | 存放邮件抄送人地址的字符串数组 |
EXTRA_CHANGED_COMPONENT_NAME | Deprecated.(过时了) |
EXTRA_CHANGED_COMPONENT_NAME_LIST | 用于调用ACTION_PACKAGE_CHANGED时,列出改变的组件的名字数组
|
EXTRA_DATA_REMOVED | 用于ACTION_PACKAGE_REMOVED时,指示是完全卸载(删除程序和数据),还是部分卸载(留下数据,这意味着有可能是更新应用程序) |
EXTRA_DOCK_STATE | 用于ACTION_DOCK_EVENT需要这个Dock State.它能取的值有EXTRA_DOCK_STATE_UNDOCKED,EXTRA_DOCK_STATE_DESK,EXTRA_DOCK_STATE_CAR. |
EXTRA_DOCK_STATE_CAR
| 汽车底座 |
EXTRA_DOCK_STATE_DESK
| 桌面底座 |
EXTRA_DOCK_STATE_UNDOCKED | 无Dock底座 |
EXTRA_DONT_KILL_APP | 用一个boolean型的值在调用ACTION_PACKAGE_REMOVED或者ACTION_PACKAGE_CHANGED来重载默认的重启应用的行为 |
EXTRA_EMAIL | 存放邮件地址的字符串数组 |
EXTRA_INITIAL_INTENTS | 增加额外的Activity选择项到ACTION_CHOOSER调用时的选择列表中 |
EXTRA_INTENT | 配合ACTION_PICK_ACTIVITY.选择你想要的Activity |
EXTRA_KEY_EVENT | 以KeyEvent对象方式存放触发Intent的按键 |
EXTRA_PHONE_NUMBER | 存放调用ACTION_CALL时的电话号码 |
EXTRA_REMOTE_INTENT_TOKEN | 远程的Intent |
EXTRA_REPLACING | 一个boolean值配合ACTION_PACKAGE_REMOVED来指示是否程序被替换(重新安装程序) |
EXTRA_SHORTCUT_ICON | 图标的名字字符串,它对应的类型为Bitmap,作为快捷方式的图标 |
EXTRA_SHORTCUT_ICON_RESOURCE | 图标的名字的资源字符串,类型为ShortcutIconResource,作为快捷方式的图标 |
EXTRA_SHORTCUT_INTENT | 用于shortcut(快捷方式)的Intent中
|
EXTRA_STREAM | A content: URI holding a stream of data associated with the Intent, used with ACTION_SEND to supply the data being sent. |
EXTRA_SHORTCUT_NAME | 配合ACTION_CREATE_SHORTCUT来创建一个Activity的快捷方式时,指定快捷方式的名字
|
EXTRA_SUBJECT | 存放邮件主题字符串 |
EXTRA_TEMPLATE | The initial data to place in a newly created record. Use with ACTION_INSERT. The data here is a Map containing the same fields as would be given to the underlying ContentProvider.insert() call. |
EXTRA_TEXT | 存放邮件内容 |
EXTRA_TITLE | 配合ACTION_CHOOSER,在创建Chooser Dialog的时候,指定该Dialog的Title. |
转载请注明出处=>csdn胖虎:http://blog.csdn.net/ljphhj | |
EXTRA_UID | 一个int类型,配合ACTION_UID_REMOVED支持注册uid的包,方便当ACTION_PACKAGE_REMOVED或者ACTION_PACKAGE_CHANGED触发时能 找到同一个目标(用UID来区分) |
希望这些对大家学习Intent中的这些常量值,还有BroadCast Receiver的学习有一些帮助。
转载请注明出处:http://blog.csdn.net/ljphhj
Action、Category、Data、Extras知识详解