首页 > 代码库 > Action、Category、Data、Extras知识详解

Action、Category、Data、Extras知识详解

开头

Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。

        诸如此类,都可以通过设置Intent属性来完成。


Intent主要有以下四个重要属性,它们分别为:


ActionAction属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。


DataData通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。


CategoryCategory属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。


ExtrasExtras属性主要用于传递目标组件所需要的额外的数据。通过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

安装的APPSD卡移动到系统空间

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_REMOVEDACTION_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_CONTENTintent, 希望可以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的时候,指定该DialogTitle.

转载请注明出处=>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知识详解