我遇到以下情况。我在AndroidManifest.xml
预期的行为是当我找到格式为http://www.domain.com/a/blabla
的网址时,或者当格式为domain/xyz
的SMS / eMail中存在链接时,系统应触发我的活动。
案例#1:工作正常
<activity
android:name=".MYActivity">
<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="xyz"
android:scheme="domain" />
</intent-filter>
</activity>
案例#2:工作正常
<activity
android:name=".MYActivity">
<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:scheme="http"
android:host="www.domain.com"
android:pathPrefix="/a"
/>
</intent-filter>
</activity>
案例#3:不工作
<activity
android:name=".MYActivity">
<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="xyz"
android:scheme="domain" />
<data
android:scheme="http"
android:host="www.domain.com"
android:pathPrefix="/a"
/>
</intent-filter>
</activity>
非常感谢任何建议/要点/帮助
答案 0 :(得分:12)
我将两个深层链接都放在两个不同的意图过滤器中,然后才能工作!!!。
答案 1 :(得分:9)
请参阅<data>
的文档:它声明:
同一个
<data>
元素中包含的所有<intent-filter>
元素都会对同一个过滤器产生影响。
因此
<intent-filter>
<data
android:host="xyz"
android:scheme="domain" />
<data
android:scheme="http"
android:host="www.domain.com"
android:pathPrefix="/a" />
<intent-filter>
被等同地解释为(非真实代码)
<intent-filter>
<data
android:host="xyz"
android:scheme="domain"
android:scheme="http"
android:host="www.domain.com"
android:pathPrefix="/a" />
<intent-filter>
显然存在一些矛盾,例如主持人xyz
VS www.domain.com
。
答案 2 :(得分:1)
从Android官方文档网站:
尽管可以在同一个元素中包含多个元素 过滤器,在你的时候创建单独的过滤器很重要 意图是声明唯一的URL (例如特定的组合 scheme和host),因为同一意图中的多个元素 过滤器实际上合并在一起,以解释所有变体 他们的综合属性。
您必须创建单独的intent-filter
s。
答案 3 :(得分:0)
以下是教程我帮助它 Tutorial link