例如:我收到一個簡訊是一個連結:http://www.qq.com/a/b/?, 當我點擊以後我要實現的情境是:點擊-----》有兩種情況可供選擇:手機中有此應用,跳轉到應用;反之,則進入網頁。
跳入網頁我就不說了,這個不用寫什麼都會跳過去,本身就是http超連結,下面介紹如何讓系統根據書寫的串連,尋找到我的應用程式,並在程式中將這個地址完整的擷取:
1、首先,在manifest.xml中你要跳轉到的activity中添加如下代碼:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:pathPrefix="/a" android:host="www.qq.com" android:scheme="http"/>
</intent-filter>
注意:在以上代碼中android:pathPrefix="/a",這個屬性定義了內容提供器的資料子集的URI的初始部分,這就說明設定schema(http)一切支援連結的頭
host(我們連結主體部分)都與短連結相同的情況下,還有一個承擔過濾器的屬性:pathPrefix,這個屬性的值只需要填寫這個連結主體後面的第一個“/*”的內容就行,當然還有一個是提供完整URI的屬性:android:pathpattern,這兩個屬性看你們的需要選擇,關鍵在於這個URI是不是固定的,而我的這個例子,連結的尾部不固定,所以我使用android:pathPrefix屬性將固定的過濾內容填寫進去就行,到時候http://www.qq.com/a/b/?這個串連只要http://www.qq.com/a不變,後面無論怎麼變都會彈出我這個應用的選擇項。
下面看在我點擊串連以後出現選擇框,點選進入我的應用程式後,我代碼中如何提取整個串連的內容:
try {
Log.e("獲得點擊的串連全部內容", getIntent()
.getDataString());
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("e.printStackTrace()", "擦,哥哥不是從短連結進來的!");
}
}