我想通过我的应用程序打开自定义扩展文件(* .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>