我有一个应用程序,可以使用来自不同来源的意图过滤器查看不同类型的视频文件。为了在尝试打开任何视频文件时始终允许该应用程序出现,我已将此代码放置在清单中
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.PICK"/>
<data android:mimeType="video/*" />
</intent-filter>
因此我可以在主要活动中通过处理Uri的应用接收Uri。
尽管一切似乎都按预期进行,但每次我尝试编辑清单时,Android Studio都用红色下划线标记所有意图过滤器代码,并报告错误missing url
。
如果我删除了<data android:mimeType="video/*" />
,错误消失了,但是如果我这样做,该应用程序不仅会显示为视频文件,而且还会显示为选择。
答案 0 :(得分:1)
@AndreaF我有同样的问题。您可以禁止显示此警告。
要抑制,请尝试以下操作:
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.PICK"/>
<data android:mimeType="video/*" />
</intent-filter>
将xmlns:tools =“ http://schemas.android.com/tools”添加到您的初始清单标签中。
答案 1 :(得分:1)
Google 的员工似乎更喜欢暗示而不是回答问题 deep-linking。
正确指定架构很重要。对于旧版本的文件,它是“文件”,在较新版本的 Android 中,它是“内容”。对于链接,这些是 http 和 https。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:mimeType="application/octet-stream"
android:pathPattern=".*\\.ext"
android:scheme="file" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:mimeType="application/octet-stream"
android:pathPattern=".*\\.ext"
android:scheme="content" />
</intent-filter>
答案 2 :(得分:0)
提示缺少网址的原因不是action.PICK
,该错误与action.VIEW
有关
<intent-filter>
<action android:name="android.intent.action.VIEW"/> //delete this line
<action android:name="android.intent.action.PICK"/>
<category android:name="android.intent.category.DEFAULT"/> //add this line
<category android:name="android.intent.category.OPENABLE"/> //and this
<data android:mimeType="video/*" />
</intent-filter>
对于action.VIEW
,您可以定义一个不同的Intent过滤器。