1. 程式人生 > >Action、Category、Data、Extras知識詳解

Action、Category、Data、Extras知識詳解

開頭

Intent作為聯絡各Activity之間的紐帶,其作用並不僅僅只限於簡單的資料傳遞。通過其自帶的屬性,其實可以方便的完成很多較為複雜的操作。例如直接呼叫撥號功能、直接自動呼叫合適的程式開啟不同型別的檔案等等。

        諸如此類,都可以通過設定Intent屬性來完成。


Intent主要有以下四個重要屬性,它們分別為:


ActionAction屬性的值為一個字串,它代表了系統中已經定義了一系列常用的動作。通過setAction()方法或在清單檔案AndroidManifest.xml中設定。預設為:DEFAULT。


Data

:Data通常是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

螢幕開啟(只能通過程式碼動態註冊BroadCastReceiver才能生效)

ACTION_SCREEN_OFF

螢幕關閉(只能通過程式碼動態註冊BroadCastReceiver才能生效)

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