android – 自定义扩展文件无法在我的应用中打开

我想通过我的应用程序打开自定义扩展文件(* .xyz).在应用程序清单文件中,我写了以下内容:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="http"    android:host="*" android:pathPattern=".*\\.xyz" />
        <data android:scheme="https"   android:host="*" android:pathPattern=".*\\.xyz" />
        <data android:scheme="content" android:host="*" android:pathPattern=".*\\.xyz" />
         <data android:scheme="file"   android:host="*" android:pathPattern=".*\\.xyz" />
</intent-filter>

之后,我将在设备上安装我的应用程序,并将包含Sample.xyz邮件的邮件作为附件发送.当我尝试在邮件客户端中点击附件以打开附件时,它会给出一个名为的错误

没有应用可以打开此附件进行查看

即使我下载附件然后尝试打开它,它也会出错

无法打开文件

任何人都可以建议可能出错的地方?

最佳答案 您的过滤器不匹配,因为它不是同时的http https文件和内容 – 您需要使用不同的< intent-filter> – 看看这里:

https://github.com/ligi/PassAndroid/blob/master/src/main/AndroidManifest.xml

并且只为* .pkpass执行我为* .xyz所做的事情,如下所示:

    <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="*"
            android:pathPattern=".*\\.xyz"
            android:scheme="http" />
    </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:host="*"
            android:pathPattern=".*\\.xyz"
            android:scheme="https" />
    </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:host="*"
            android:pathPattern=".*\\.xyz"
            android:scheme="file" />
    </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:host="*"
            android:pathPattern=".*\\.xyz"
            android:scheme="content" />
    </intent-filter>
点赞