Android深度链接去PlayStore,而不是我的应用程序在某些设备上

我在应用程序的清单中注册了以下意图filter:

<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:host="m.mycompany.de" android:pathPattern="/app/list" android:scheme="http" /> </intent-filter> 

并创build一个简单的HTML页面来testing应用程序是否打开正确:

 <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML> <HEAD> <TITLE> A Small Hello </TITLE> </HEAD> <BODY> <a href = "http://m.mycompany.de/app/list?param1=178&param2=87294">Click</a> </BODY> </HTML> 

在某些设备上(例如运行Android 5.1的Nexus 5),点击该链接按预期打开我的应用程序,在其他设备(例如Nexus 6也运行5.1)上打开PlayStore(我的应用程序的页面)而不是我的应用程序。

任何想法可能是什么问题?

编辑:奇怪的是,这个错误消失了,当简化URL到:

 http://m.mycompany.de/list?param1=178&param2=87294 

和我的意图filter

  <data android:host="m.mycompany.de" android:pathPattern="/app" android:scheme="http" /> 

这不是一个选项,虽然因为我没有控制我的现场应用程序的url。

Solutions Collecting From Web of "Android深度链接去PlayStore,而不是我的应用程序在某些设备上"

正如我所看到的,您在错误的方向使用数据段的pathPattern参数。

根据Google 文档 :

pathPattern属性指定与Intent对象中完整path匹配的完整path。

所以你需要使用pathPrefix而不是pathPattern:

pathPrefix属性指定仅与Intent对象中的path的初始部分匹配的部分path。

或者只是丢弃path,只使用主机和scheme:

 <data android:host="m.mycompany.de" android:scheme="http" /> 

PS另外注意Mimmo Grottoli对原始信息的评论。