开头
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