(轉(zhuǎn)載)Intent與其他應(yīng)用的交互

轉(zhuǎn)自:http://www.cnblogs.com/2010wuhao/p/4720012.html

intent的發(fā)送

我們必須使用intent來(lái)在同一個(gè)app的兩個(gè)activity之間進(jìn)行切換衷佃。通常是定義一個(gè)顯式(explicit)的intent,它指定了需要啟動(dòng)組件的類(lèi)名。然而蹄胰,當(dāng)想要喚起不同的app來(lái)執(zhí)行某個(gè)動(dòng)作(比如查看地圖)夕春,則必須使用隱式(implicit)的intent丈攒。

建立隱式的Intent

mplicit intents并不聲明要啟動(dòng)組件的具體類(lèi)名褥实,而是聲明一個(gè)需要執(zhí)行的action遍希。這個(gè)action指定了我們想做的事情等曼,例如查看,編輯凿蒜,發(fā)送或者是獲取一些東西禁谦。Intents通常會(huì)在發(fā)送action的同時(shí)附帶一些數(shù)據(jù),例如你想要查看的地址或者是你想要發(fā)送的郵件信息废封。數(shù)據(jù)的具體類(lèi)型取決于我們想要?jiǎng)?chuàng)建的Intent州泊,比如Uri或其他規(guī)定的數(shù)據(jù)類(lèi)型,或者甚至也可能根本不需要數(shù)據(jù)漂洋。

Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);

驗(yàn)證是否有App去接收這個(gè)Intent

盡管Android系統(tǒng)會(huì)確保每一個(gè)確定的intent會(huì)被系統(tǒng)內(nèi)置的app(such as the Phone, Email, or Calendar app)之一接收拥诡,但是我們還是應(yīng)該在觸發(fā)一個(gè)intent之前做驗(yàn)證是否有App接受這個(gè)intent的步驟。

PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;

使用intent啟動(dòng)activity

當(dāng)創(chuàng)建好了intent并且設(shè)置好了extra數(shù)據(jù)后氮发,通過(guò)執(zhí)行startActivity() 將intent發(fā)送到系統(tǒng)渴肉。若系統(tǒng)確定了多個(gè)activity可以handle這個(gè)intent,它會(huì)顯示出一個(gè)dialog,讓用戶(hù)選擇啟動(dòng)哪個(gè)app爽冕。如果系統(tǒng)發(fā)現(xiàn)只有一個(gè)app可以handle這個(gè)intent仇祭,則系統(tǒng)將直接啟動(dòng)該app。

startActivity(intent);

地圖實(shí)例

// Build the intent
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
// Verify it 
resolvesPackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) { startActivity(mapIntent);}

顯示分享app的選擇列表

如果用戶(hù)希望每次都彈出選擇界面颈畸,而且每次都不確定會(huì)選擇哪個(gè)app啟動(dòng)乌奇,例如分享功能,用戶(hù)選擇分享到哪個(gè)app都是不確定的眯娱,這個(gè)時(shí)候礁苗,需要強(qiáng)制彈出選擇的對(duì)話(huà)框。(這種情況下用戶(hù)不能選擇默認(rèn)啟動(dòng)的app)徙缴。
為了顯示chooser, 需要使用createChooser()來(lái)創(chuàng)建Intent

Intent intent = new Intent(Intent.ACTION_SEND);
String title = getResources().getText(R.string.chooser_title);
Intent chooser = Intent.createChooser(intent, title);
startActivity(chooser);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末试伙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疏叨,老刑警劉巖潘靖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蚤蔓,居然都是意外死亡卦溢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)秀又,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)单寂,“玉大人,你說(shuō)我怎么就攤上這事吐辙∑喾罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵袱讹,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我昵时,道長(zhǎng)捷雕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任壹甥,我火速辦了婚禮救巷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘句柠。我一直安慰自己浦译,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布溯职。 她就那樣靜靜地躺著精盅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谜酒。 梳的紋絲不亂的頭發(fā)上叹俏,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音僻族,去河邊找鬼粘驰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛述么,可吹牛的內(nèi)容都是我干的蝌数。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼度秘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼顶伞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤枝哄,失蹤者是張志新(化名)和其女友劉穎肄梨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體挠锥,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡众羡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蓖租。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粱侣。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蓖宦,靈堂內(nèi)的尸體忽然破棺而出齐婴,到底是詐尸還是另有隱情,我是刑警寧澤稠茂,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布柠偶,位于F島的核電站,受9級(jí)特大地震影響睬关,放射性物質(zhì)發(fā)生泄漏诱担。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一电爹、第九天 我趴在偏房一處隱蔽的房頂上張望蔫仙。 院中可真熱鬧,春花似錦丐箩、人聲如沸摇邦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)施籍。三九已至,卻和暖如春概漱,著一層夾襖步出監(jiān)牢的瞬間法梯,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工犀概, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留立哑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓姻灶,卻偏偏與公主長(zhǎng)得像铛绰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子产喉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容