android實現點擊短鏈接進入應用 並獲得整個連接的內容

例如:我收到一個短信是一個鏈接:https://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屬性將固定的過濾內容填寫進去就行,到時候https://www.qq.com/a/b/?這個連接隻要https://www.qq.com/a不變,後面無論怎麼變都會彈出我這個應用的選擇項。

下面看在我點擊連接以後出現選擇框,點選進入我的應用後,我代碼中如何提取整個連接的內容:

try {
Log.e("獲得點擊的連接全部內容", getIntent()
.getDataString());
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("e.printStackTrace()", "擦,哥哥不是從短鏈接進來的!");
}

 

}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *