系統(tǒng)中沒有郵件客戶端設(shè)置autoLink=email會掛掉的問題

今天使用了autoLink ,于是 摘抄了可能會出現(xiàn)了問題 留待他用

通過看Log可以發(fā)現(xiàn)懦胞,系統(tǒng)拋出了ActivityNotFoundException異常智厌,并且Exception的getMessage中包含"mailto:xxxx@xxx.xxx"字樣属划,當(dāng)時第一反應(yīng)是設(shè)置Thread.uncaughtExceptionHandler雀哨,判斷如果異常的類型是ActivityNotFoundException并且Error Message中有"mailto"字樣直接讓uncaughtException函數(shù)返回埋凯,試了一下锅减,程序確實沒掛掉脆诉,竊喜中甚亭,但是接下來點擊了一下屏幕贷币,5秒鐘后ANR了,好吧這個方法不行亏狰。

又想到當(dāng)點擊鏈接后會調(diào)用郵件客戶端發(fā)郵件役纹,肯定有startActivity的調(diào)用,于是重載Activity的startActivity函數(shù)暇唾,把參數(shù) intent的內(nèi)容打出來(直接toString()就行了)促脉,發(fā)現(xiàn)在Intent的內(nèi)容是ACTIVION_VIEW,并有extra data:mailto:xxxx@xxx.xxx信不,所以就通過intent包含的信息判斷如果包含mailto字樣就認(rèn)為是系統(tǒng)調(diào)用郵件客戶端發(fā)郵件嘲叔,此時判斷系統(tǒng)中是否有郵件客戶端可處理這個請求,如果沒有就把這個startActivity事件攔截下來抽活。


@Overridepublic void startActivity(Intent intent) {    if (intent.toString().indexOf("mailto") != -1) { // Any way to judge that this is to sead an email        PackageManager pm = getPackageManager();        // The first Method        Listactivities = pm.queryIntentActivities(intent, 0);

if (activities == null || activities.size() == 0) {

// Do anything you like, or just return

return;

}

// Another method

// ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);

// if (resolveInfo == null)

// Yet another metod

// Intent.createChooser(intent, "Choose email client");

}

super.startActivity(intent);

}

第一種和第二種都是通過PackageManager判斷是否有可以處理這個Intent的請求的組件硫戈,如果沒有就直接讓startActivity返回,在返回之前你想干嘛干嘛下硕,第三種方法是通過 Intent.createChoose手動彈出一個選擇器丁逝,這個方法記得以前用是不行的,這次試了下竟然可以梭姓,難道是我記錯了霜幼?反正用前兩種方法就好了。

不只是郵件誉尖,如果你想通過以下代碼跳轉(zhuǎn)到應(yīng)用市場讓用戶為你的應(yīng)用評分


Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("market://details?id=" + getPackageName()));

startActivity(intent);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罪既,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铡恕,更是在濱河造成了極大的恐慌琢感,老刑警劉巖飒房,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件首有,死亡現(xiàn)場離奇詭異鹃觉,居然都是意外死亡赤惊,警方通過查閱死者的電腦和手機寝受,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門妻熊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶轰,“玉大人羡洁,你說我怎么就攤上這事其垄】疗眩” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵捉捅,是天一觀的道長撤防。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么寄月? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任辜膝,我火速辦了婚禮,結(jié)果婚禮上漾肮,老公的妹妹穿的比我還像新娘厂抖。我一直安慰自己,他們只是感情好克懊,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布忱辅。 她就那樣靜靜地躺著,像睡著了一般谭溉。 火紅的嫁衣襯著肌膚如雪墙懂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天扮念,我揣著相機與錄音损搬,去河邊找鬼。 笑死柜与,一個胖子當(dāng)著我的面吹牛巧勤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弄匕,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼颅悉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了迁匠?” 一聲冷哼從身側(cè)響起剩瓶,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎城丧,沒想到半個月后儒搭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡芙贫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傍药。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磺平。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拐辽,靈堂內(nèi)的尸體忽然破棺而出拣挪,到底是詐尸還是另有隱情,我是刑警寧澤俱诸,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布菠劝,位于F島的核電站,受9級特大地震影響睁搭,放射性物質(zhì)發(fā)生泄漏赶诊。R本人自食惡果不足惜笼平,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舔痪。 院中可真熱鬧寓调,春花似錦、人聲如沸锄码。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滋捶。三九已至痛悯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間重窟,已是汗流浹背载萌。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亲族,地道東北人炒考。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像霎迫,于是被迫代替她去往敵國和親斋枢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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