例如:我收到一个短信是一个链接: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()", "擦,哥哥不是从短链接进来的!");
}
OK了 结果是:http://www.qq.com/a/b/c至于你获取以后干什么用,天知道。