Android 用于http://data的NFC意图过滤器

Android 用于http://data的NFC意图过滤器,android,nfc,Android,Nfc,我制作了一个应用程序,可以播放NFC标签上保存的链接中的视频。这些视频的链接将以.3gp或.mp4等结尾,如下所示 我的舱单是这样的 <activity android:name="com.example.nfcv1.VedioView" android:label="@string/app_name" > <intent-filter> <action andr

我制作了一个应用程序,可以播放NFC标签上保存的链接中的视频。这些视频的链接将以.3gp或.mp4等结尾,如下所示

我的舱单是这样的

<activity
            android:name="com.example.nfcv1.VedioView"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="http" 
                        android:pathPrefix="/.3gp"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIDEOVIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity> 

但问题是这项活动从任何一种链接开始,例如www.google.com
我想将此活动限制为仅在检测到视频链接时打开,否则请转到浏览器打开链接

您应该检查文件扩展名的符号。我猜你更想写“android:pathPrefix=*.3pg”

此外,文档还请求一个主机元素。因此,您可以尝试在数据元素中添加类似于android:host=“*”的内容

文件说:

android:路径模式

URI的路径部分。路径属性指定与意图对象中的完整路径匹配的完整路径。pathPrefix属性指定仅与意图对象中路径的初始部分匹配的部分路径。pathPattern属性指定与意图对象中的完整路径匹配的完整路径,但它可以包含以下通配符:

星号(“*”)与前一个字符的0到多个匹配序列。后跟星号(“*”)的句点与0到多个字符的任何序列匹配

因为在从XML读取字符串时(在将其解析为模式之前),将“\”用作转义字符,所以需要进行双重转义:例如,文字“*”将写为“\\*”,文字“\”将写为“\\\”。这与在Java代码中构造字符串时需要编写的内容基本相同

有关这三种类型的模式的更多信息,请参阅PatternMatcher类中对PATTERN_LITERAL、PATTERN_PREFIX和PATTERN_SIMPLE_GLOB的描述

仅当还为筛选器指定了方案和主机属性时,这些属性才有意义。


请参阅:

它不起作用。。。现在,它指向浏览器的两种类型的链接。。。我想让它直接到浏览器的正常链接,但直接到我的应用程序时,它的视频链接结束于.3gp或.mp4