oce*_*est 14 gmail android attachment download android-intent
我有Android应用程序与意图过滤器(ACTION_VIEW)打开文件并将其导入我的应用程序.我希望从gmail应用程序下载文件附件到我的应用程序.一些文件类型(即jpg,png,txt)被正确保存,但有些不是(即doc,xls,ppt).我相信我对我的活动有正确的意图过滤器,因为它适用于其他应用程序(即dropbox),但不适用于gmail应用程序.这有什么解决方案吗?
通过删除我的意图中的方案数据过滤器,我能够在GMail中的Android上弹出下载和预览按钮(删除方案行并尝试一下):
<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=".*\\.ext" />
<data android:host="*" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但是,根据Android文档,"如果没有为intent过滤器指定方案,则忽略所有其他URI属性." 删除了scheme和URI属性后,过滤意图的唯一方法是使用Mime类型,我们都知道自定义文件扩展名没有注册的mime类型.
作为参考,URI的形式如下:
所以没有方案,所有这些都会下降.在发现上述内容之后,我尝试了显而易见的 - 使用"*"作为方案,甚至尝试了".*".这些都没有奏效.我希望其他人可以继承我的考验.但我认为这与选择正确的方案有关.不幸的是,我所知道的唯一方案是http https内容和文件,以上都不是神奇的子弹.
编辑::::::::
我昨天解决了这个问题 请参阅我的解决方案:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/*" host="*" android:pathPattern=".*.ext" android:scheme="content" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
此意图将导致gmail显示"下载/预览"按钮.实际上,当.ext文件作为附件发送到常规电子邮件客户端时,这也会导致您的应用程序打开.
| 归档时间: |
|
| 查看次数: |
6449 次 |
| 最近记录: |