Android學習整理 - 13- 常用Intent.Action

轉載自Android開發之Intent.Action


1 Intent.ACTION_MAIN

String: android.intent.action.MAIN

標識Activity為一個程序的開始。比較常用。

Input:nothing

Output:nothing

<activity android:name=".Main" android:label="@string/app_name">   
<intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity> 

2 Intent.Action_CALL

Stirng: android.intent.action.CALL```
呼叫指定的電話號碼。
Input:電話號碼。數據格式為:tel:+phone number 

Output:Nothing 
  

Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:1320010001");startActivity(intent);```

3 Intent.Action.DIAL

String: action.intent.action.DIAL```
調用撥號面板

Intent intent=new Intent();
intent.setAction(Intent.ACTION_DIAL); //android.intent.action.DIALintent.setData(Uri.parse("tel:1320010001");startActivity(intent); ```

Input:電話號碼。數據格式為:tel:+phone number
Output:Nothing
說明:打開Android的撥號UI。如果沒有設置數據,則打開一個空的UI,如果設置數據,action.DIAL則通過調用getData()獲取電話號碼。

但設置電話號碼的數據格式為 tel:+phone number.

4 Intent.Action.ALL_APPS

String: andriod.intent.action.ALL_APPS```
列出所有的應用。
Input:Nothing.
Output:Nothing.
 

#**5 Intent.ACTION_ANSWER**

Stirng:android.intent.action.ANSWER```
處理呼入的電話。
Input:Nothing.
Output:Nothing.

6 Intent.ACTION_ATTACH_DATA

String: android.action.ATTCH_DATA```
別用于指定一些數據應該附屬于一些其他的地方,例如,圖片數據應該附屬于聯系人
Input: Data
Output:nothing
 
#**7 Intent.ACTION_BUG_REPORT**

String: android.intent.action.BUG_REPORT```
顯示Dug報告。
Input:nothing
output:nothing

8 Intent.Action_CALL_BUTTON

String: android.action.intent.CALL_BUTTON.```
相當于用戶按下“撥號”鍵。經測試顯示的是“通話記錄”
Input:nothing
Output:nothing
 

Intent intent = new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(intent);

  
#**9 Intent.ACTION_CHOOSER**

String: android.intent.action.CHOOSER```
顯示一個activity選擇器,允許用戶在進程之前選擇他們想要的,與之對應的是Intent.ACTION_GET_CONTENT.

10. Intent.ACTION_GET_CONTENT

String: android.intent.action.GET_CONTENT```
允許用戶選擇特殊種類的數據,并返回(特殊種類的數據:照一張相片或錄一段音) 
Input: Type
Output:URI
 

int requestCode = 1001;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); // "android.intent.action.GET_CONTENT"intent.setType("image/"); // 查看類型,如果是其他類型,比如視頻則替換成 video/,或 /Intent wrapperIntent = Intent.createChooser(intent, null);
startActivityForResult(wrapperIntent, requestCode);


#**11 Intent.ACTION_VIEW**

String android.intent.action.VIEW```
用于顯示用戶的數據。
比較通用,會根據用戶的數據類型打開相應的Activity。
比如 tel:13400010001打開撥號程序,http://www.g.cn則會打開瀏覽器等。

Uri uri = Uri.parse("http://www.google.com"); //瀏覽器 
Uri uri =Uri.parse("tel:1232333"); //撥號程序 
Uri uri=Uri.parse("geo:39.899533,116.036476"); //打開地圖定位 
Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it); 
//播放視頻 Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.parse("file:///sdcard/media.mp4"); 
intent.setDataAndType(uri, "video/*"); 
startActivity(intent);
//調用發送短信的程序 
Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "信息內容..."); 
it.setType("vnd.android-dir/mms-sms"); 
startActivity(it);

**12 Intent.ACTION_SENDTO **

String: android.intent.action.SENDTO```
說明:發送短信息

  

//發送短信息
Uri uri = Uri.parse("smsto:13200100001");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "信息內容...");
startActivity(it);

  

//發送彩信,設備會提示選擇合適的程序發送
Uri uri = Uri.parse("content://media/external/images/media/23"); //設備中的資源(圖像或其他資源)
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("sms_body", "內容");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/png");
startActivity(it);

//Email
Intent intent=new Intent(Intent.ACTION_SEND);
String[] tos={"android1@163.com"};
String[] ccs={"you@yahoo.com"};
intent.putExtra(Intent.EXTRA_EMAIL, tos);
intent.putExtra(Intent.EXTRA_CC, ccs);
intent.putExtra(Intent.EXTRA_TEXT, "The email body text");
intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent, "Choose Email Client"));

 
#**13 Intent.ACTION_GET_CONTENT**
 

//選擇圖片 requestCode 返回的標識
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); //"android.intent.action.GET_CONTENT"intent.setType(contentType);
//查看類型
String IMAGE_UNSPECIFIED = "image/*";
Intent wrapperIntent = Intent.createChooser(intent, null);
((Activity) context).startActivityForResult(wrapperIntent, requestCode);


//添加音頻
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(contentType); //String VIDEO_UNSPECIFIED = "video/*";
Intent wrapperIntent = Intent.createChooser(intent, null);
((Activity) context).startActivityForResult(wrapperIntent, requestCode);


//拍攝視頻
int durationLimit = getVideoCaptureDurationLimit(); //SystemProperties.getInt("ro.media.enc.lprof.duration", 60);
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, sizeLimit);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, durationLimit);
startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);

//視頻
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(contentType); //String VIDEO_UNSPECIFIED = "video/*";
Intent wrapperIntent = Intent.createChooser(intent, null);
((Activity) context).startActivityForResult(wrapperIntent, requestCode);

//錄音
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContentType.AUDIO_AMR); //String AUDIO_AMR = "audio/amr";
intent.setClassName("com.android.soundrecorder", "com.android.soundrecorder.SoundRecorder");
((Activity) context).startActivityForResult(intent, requestCode);

//拍照 REQUEST_CODE_TAKE_PICTURE 為返回的標識
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //"android.media.action.IMAGE_CAPTURE";
intent.putExtra(MediaStore.EXTRA_OUTPUT, Mms.ScrapSpace.CONTENT_URI); // output,Uri.parse("content://mms/scrapSpace");
startActivityForResult(intent, REQUEST_CODE_TAKE_PICTURE);


---

#Action大全

|類型|Action|動作含義|
|---|---|-------|
|String|"android.intent.action.ADD_SHORTCUT"|動作:在系統中添加一個快捷方式。.|
|String|"android.intent.action.ALL_APPS"|動作:列舉所有可用的應用。|
|String|"android.intent.action.ANSWER"|動作:處理撥入的電話。|
|String|"android.intent.action.BUG_REPORT"|動作:顯示 activity 報告錯誤。|
|String|"android.intent.action.CALL"|動作:撥打電話,被呼叫的聯系人在數據中指定。|
|String|"android.intent.action.CLEAR_CREDENTIALS"|動作:清除登陸憑證 (credential)。|
|String|"android.intent.action.VIEW"|動作:和 VIEW_ACTION 相同,是在數據上執行的標準動作。|
|String|"android.intent.action.DELETE"|動作:從容器中刪除給定的數據。|
|String|"android.intent.action.DIAL"|動作:撥打數據中指定的電話號碼。|
|String|"android.intent.action.EDIT"|動作:為制定的數據顯示可編輯界面。|
|String|"android.intent.action.EMERGENCY_DIAL"|動作:撥打緊急電話號碼。|
|String|"android.intent.action.LOGIN"|動作:獲取登錄憑證。|
|String|"android.intent.action.MAIN"|動作:作為主入口點啟動,不需要數據。|
|String|"android.intent.action.PICK"|動作:從數據中選擇一個項目item,將被選中的項目返回。|
|String|"android.intent.action.PICK_ACTIVITY"|動作:選擇一個activity,返回被選擇的activity的類名|
|String|"android.intent.action.RUN"|動作:運行數據(指定的應用),無論它(應用)是什么。|
|String|"android.intent.action.SENDTO"|動作:向 data 指定的接收者發送一個消息。|
|String|"android.intent.action.GET_CONTENT"|動作:讓用戶選擇數據并返回。|
|String|"android.intent.action.INSERT"|動作:在容器中插入一個空項 (item)。|
|String|"android.intent.action.SETTINGS"|動作:顯示系統設置。輸入:無。|
|String|"android.intent.action.VIEW"|動作:向用戶顯示數據。|
|String|"android.intent.action.WALLPAPER_SETTINGS"|動作:顯示選擇墻紙的設置界面。輸入:無。|
|String|"android.intent.action.WEB_SEARCH"|動作:執行 web 搜索。|
|String|"android.intent.action.SYNC"|動作:執行數據同步。|
|String|"android.intent.action.SERVICE_STATE"|廣播:電話服務的狀態已經改變。|
|String|"android.intent.action.TIMEZONE_CHANGED"|廣播:時區已經改變。|
|String|"android.intent.action.TIME_SET"|廣播:時間已經改變(重新設置)。|
|String|"android.intent.action.TIME_TICK"|廣播:當前時間已經變化(正常的時間流逝)。|
|String|"android.intent.action.UMS_CONNECTED"|廣播:設備進入 USB 大容量存儲模式。|
|String|"android.intent.action.UMS_DISCONNECTED"|廣播:設備從 USB 大容量存儲模式退出。|
|String|"android.intent.action.WALLPAPER_CHANGED"|廣播:系統的墻紙已經改變。|
|String|"android.intent.action.XMPP_CONNECTED"|廣播:XMPP 連接已經被建立。|
|String|"android.intent.action.XMPP_DI|廣播:XMPP 連接已經被斷開。|
|String|"android.intent.action.SIG_STR"|廣播:電話的信號強度已經改變。|
|String|"android.intent.action.BATTERY_CHANGED"|廣播:充電狀態,或者電池的電量發生變化。|
|String|"android.intent.action.BOOT_COMPLETED"|廣播:在系統啟動后,這個動作被廣播一次(只有一次)|
|String|"android.intent.action.DATA_ACTIVITY"|廣播:電話的數據活動(data activity)狀態已經改變|
|String|"android.intent.action.DATA_STATE"|廣播:電話的數據連接狀態已經改變。|
|String|"android.intent.action.DATE_CHANGED"|廣播:日期被改變。|
|String|"android.server.checkin.FOTA_CANCEL"|廣播:取消所有被掛起的 (pending) 更新下載。|
|String|"android.server.checkin.FOTA_INSTALL"|廣播:更新已經被確認,馬上就要開始安裝。|
|String|"android.server.checkin.FOTA_READY"|廣播:更新已經被下載,可以開始安裝。|
|String|"android.server.checkin.FOTA_RESTART"|廣播:恢復已經停止的更新下載。|
|String|"android.server.checkin.FOTA_UPDATE"|[廣播:通過 OTA 下載并安裝操作系統更新。](http://lib.csdn.net/base/operatingsystem)|
|String|"android.intent.action.MEDIABUTTON"|廣播:用戶按下了“Media Button”。|
|String|"android.intent.action.MEDIA_BAD_REMOVAL"|廣播:擴展卡從SD卡插槽拔出,但是掛載點還沒unmount。|
|String|"android.intent.action.MEDIA_EJECT"|廣播:用戶想要移除擴展介質(拔掉擴展卡)。|
|String|"android.intent.action.MEDIA_MOUNTED"|廣播:擴展介質被插入,而且已經被掛載。|
|String|"android.intent.action.MEDIA_REMOVED"|廣播:擴展介質被移除。|
|String|"android.intent.action.MEDIA_SCANNER_FINISHED"|廣播:已經掃描完介質的一個目錄。|
|String|"android.intent.action.MEDIA_SCANNER_STARTED"|廣播:開始掃描介質的一個目錄。|
|String|"android.intent.action.MEDIA_SHARED"|廣播:擴展介質的掛載被解除 (unmount)|
|String|"android.intent.action.MEDIA_UNMOUNTED"|廣播:擴展介質存在,但是還沒有被掛載 (mount)。|
|String|"android.intent.action.MWI"|廣播:電話的消息等待(語音郵件)狀態已經改變。|
|String|"android.intent.action.PACKAGE_ADDED"|廣播:設備上新安裝了一個應用程序包。|
|String|"android.intent.action.PACKAGE_REMOVED"|廣播:設備上刪除了一個應用程序包。|
|String|"android.intent.action.PHONE_STATE"|廣播:電話狀態已經改變。|
|String|"android.intent.action.PROVIDER_CHANGED"|廣播:更新將要(真正)被安裝。|
|String|"android.intent.action.PROVISIONING_CHECK"|廣播:要求provisioning service下載最新的設置|
|String|"android.intent.action.SCREEN_OFF"|廣播:屏幕被關閉。|
|String|"android.intent.action.SCREEN_ON"|廣播:屏幕已經被打開。|
|String|"android.intent.action.NETWORK_TICKLE_RECEIVED"|廣播:設備收到了新的網絡 "tickle" 通知。|
|String|"android.intent.action.STATISTICS_REPORT"|廣播:要求 receivers 報告自己的統計信息。|
|String|"android.intent.action.STATISTICS_STATE_CHANGED"|廣播:統計信息服務的狀態已經改變。|
|String|"android.intent.action.CFF"|廣播:語音電話的呼叫轉移狀態已經改變。|
|String|"android.intent.action.CONFIGURATION_CHANGED"|廣播:設備的配置信息已經改變,參見 Resources.Configuration|
|String|"android.intent.category.ALTERNATIVE"|類別:說明activity是用戶正在瀏的數據的一個可選操作。|
|String|"android.intent.category.WALLPAPER"|類別:這個 activity 能過為設備設置墻紙。|
|String|"android.intent.category.UNIT_TEST"|[類別:應該被用作單元測試(通過 test harness 運行)。](http://lib.csdn.net/base/softwaretest)|
|String|"android.intent.category.TEST"|類別:作為測試目的使用,不是正常的用戶體驗的一部分。|
|String|"android.intent.category.TAB"|類別:activity應該在TabActivity中作為一個tab使用|
|String|"android.intent.category.SAMPLE_CODE"|類別:To be used as an sample code example (not part of the normal user experience).|
|String|"android.intent.category.PREFERENCE"|類別:activity是一個設置面板 (preference panel)。|
|String|"android.intent.category.HOME"|類別:主屏幕 (activity),設備啟動后顯示的第一個 activity。|
|String|"android.intent.category.BROWSABLE"|類別:能夠被瀏覽器安全使用的 activities 必須支持這個類別。|
|String|"android.intent.category.DEFAULT"|類別:如果 activity 是對數據執行確省動作(點擊, center press)的一個選項,需要設置這個類別。|
|String|"android.intent.category.DEVELOPMENT_PREFERENCE"|類別:說明 activity 是一個設置面板 (development preference panel).|
|String|"android.intent.category.EMBED"|類別:能夠在上級(父)activity 中運行。|
|String|"android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST"|類別:To be used as code under test for framework instrumentation tests.|
|String|"android.intent.category.GADGET"|類別:這個 activity 可以被嵌入宿主 activity (activity that is hosting gadgets)。|
|String|"android.intent.category.LAUNCHER"|類別:Activity 應該被顯示在頂級的 launcher 中。|
|String|"android.intent.category.SELECTED_ALTERNATIVE"|類別:對于被用戶選中的數據,activity 是它的一個可選操作。|
|int|8 0x00000008|啟動標記:和 NEW_TASK_LAUNCH 聯合使用,禁止將已有的任務改變為前景任務 (foreground)。|
|int|4 0x00000004|啟動標記:設置以后,activity 將成為歷史堆棧中的第一個新任務(棧頂)。|
|int|1 0x00000001|啟動標記:設置以后,新的 activity 不會被保存在歷史堆棧中。|
|int|2 0x00000002|啟動標記:設置以后,如果 activity 已經啟動,而且位于歷史堆棧的頂端,將不再啟動(不重新啟動) activity。|
|int|16 0x00000010|啟動標記:如果這個標記被設置,而且被一個已經存在的 activity 用來啟動新的 activity,已有 activity 的回復目標 (reply target) 會被轉移給新的 activity。|
|String|"android.intent.extra.INTENT"|附加數據:和 PICK_ACTIVITY_ACTION 一起使用時,說明用戶選擇的用來顯示的 activity;和 ADD_SHORTCUT_ACTION 一起使用的時候,描述要添加的快捷方式。|
|String|"android.intent.extra.LABEL"|附加數據:大寫字母開頭的字符標簽,和 ADD_SHORTCUT_ACTION 一起使用。|
|String|"android.intent.extra.TEMPLATE"|附加數據:新記錄的初始化模板。|
|Creator|無|無|

參考

[Android Intent Action 大全](http://blog.csdn.net/ithomer/article/details/8242471)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容