android - 如何确保电子邮件应用程序将使用我的应用程序打开文件?

标签 android android-intent intentfilter

我目前正在构建一个应用程序,允许您从电子邮件加载文件并使用电子邮件导出创建的文件。扩展名是.lq。我目前正在使用此 Intent 过滤器,但是当尝试打开扩展名为 .lq 的内容时,我在标准电子邮件应用程序中反复收到错误“此附件无法显示”:

<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=".*\\.lq"/>
    <data android:host="*"/>
</intent-filter>

我尝试了多种不同的解决方案,但没有一个有效。

最佳答案

您可以使用Intent Intercept应用程序来分析邮件应用程序发送的 Intent 并了解您需要创建什么 Intent 过滤器。

从 gmail 应用程序中,我得到以下 Intent :

Action : android.intent.action.VIEW

Data : content://gmail-ls/[email protected]/messages/471/attachements/0.1/BEST/false

URI : content://gmail-ls/[email protected]/messages/471/attachements/0.1/BEST/false

Type : image/png

所以问题是您的 .lq 不是标准扩展名,并且您也不能依赖文件名以 .lq 结尾,因为它使用没有扩展名的内部名称。

您可以使用 Intent 过滤器来捕获 content://* URI。

关于android - 如何确保电子邮件应用程序将使用我的应用程序打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11647423/

相关文章:

android - 'kotlin-android-extensions' Gradle 插件已弃用

java - 登录外部网站? (安卓)

Android:从小部件打开错误的 Activity

android - 如何创建处理打开照片的 Intent ?

android - 在我的 N1 启动后,我的 BroadcastReceiver 没有收到 BOOT_COMPLETED Intent

android - 发现 NFC_TECH 时打开 Android Activity

android - 在 Bitbucket 管道中缓存图像

android - 如何获得从 SD 卡中删除任何文件的通知

android - 将从相机拍摄的图像设置为 ImageView

android - 错误接收广播 Intent ACTION_BATTERY_CHANGED