我想向我的可浏览应用程序添加文件扩展名过滤器,因为我希望它仅在URL指向图像(jpg,png,bmp,gif ...)时才可浏览。

我已经尝试过android:mimeType="image/*",但是它不适用于Internet网址,仅当它直接指向文件系统中的图像(使用file://)时,它才有效

有没有一种方法可以通过文件扩展名(例如http://dmoral.es/assets/image/diffie_hellman.png)来过滤网址?

这是我的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:mimeType="image/*" />
</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="https" android:mimeType="image/*" />

</intent-filter>


如果删除mimeType过滤器,它将作为可浏览的应用程序使用,添加过滤器后,它不会用作可浏览的应用程序。

最佳答案

最后,我设法使用pathPattern使它正常工作,如here所示。

<data android:scheme="https"
                android:host="*"
                android:pathPattern=".*\\.jpg"/>
<data android:scheme="https"
                android:host="*"
                android:pathPattern=".*\\.jpeg"/>
<data android:scheme="https"
                android:host="*"
                android:pathPattern=".*\\.png"/>
<data android:scheme="https"
                android:host="*"
                android:pathPattern=".*\\.bmp"/>
<data android:scheme="https"
                android:host="*"
                android:pathPattern=".*\\.gif"/>


(对于httpshttp两者)

关于android - 在可浏览的应用程序中添加文件扩展名过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36988052/

10-11 22:30