我注意到Android上的一个大视频应用程序有各种各样的路径模式,我假设要抓住子目录或奇怪的名字?他们基本上最终得到了一堆看起来像这样的pattersn:<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*..*..*..*..*.3gp" />
有没有更简单的方法来简化这条路径?
这是一个较长的例子:
</intent-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:scheme="http" android:host="*" />
<data android:pathPattern=".*.3gp" />
<data android:pathPattern=".*..*.3gp" />
<data android:pathPattern=".*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*..*..*..*.3gp" />
<data android:pathPattern=".*..*..*..*..*..*..*..*..*..*..*..*..*..*..*.3gp" />
答案 0 :(得分:1)
<activity name="com.keepassdroid.PasswordActivity">
<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="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.3gp" />
<data android:host="*" />
</intent-filter>
</activity>
文件方案表明在打开本地文件时会发生这种情况(而不是像HTTP这样的协议)。
mimeType可以设置为* / *以匹配任何mime类型。
pathPattern是您指定要匹配的扩展名的位置(在此示例中为.3gp)。开头的。*匹配任何字符序列。这些字符串需要双重转义,所以\\。匹配文字句号。然后,您以文件扩展名结束。使用pathPattern的一个警告是。*不是一个贪婪的匹配,如果这是一个正则表达式,你会期望。此模式将无法匹配包含a的路径。在.3gp之前。有关此问题的更详细讨论和解决方法,请参阅此处
最后,根据Android文档,pathPattern属性需要host和scheme属性才能工作,因此只需将其设置为通配符即可匹配任何内容。
现在,如果您在像Linda文件管理器这样的应用中选择.3gp文件,我的应用就会显示为一个选项。我应该注意,仅此一项不允许您在浏览器中下载此文件类型,因为它只注册文件方案。像手机上的Linda文件管理器这样的应用程序可以自行恢复,允许您下载任何文件类型。