ric*_*dtz 10 email android attachment mime-types
这与如何在电子邮件应用程序中使用我的应用程序打开附件有关?(哑剧类型,意图过滤器...),我以为我已经解决了,但事实并非如此.
我发现一些电子邮件客户端(例如,内置在电子邮件客户端中的Samsung Galaxy SII)不支持sendIntent.setType()方法,并且在向电子邮件添加附件时,它不添加setType方法中指定的mime类型.结果是当电子邮件到达时我无法打开附件.
因此,为了能够从任何电子邮件客户端打开附件,我认为他们唯一的方法是创建一个与我的自定义扩展相关联的新mime类型.
但我找不到任何方式来注册新的mime类型.我知道它可以像一些应用程序那样完成(ASTRO文件资源管理器),但我不知道在哪里可以查找有关添加新mime类型的信息.
编辑(2012年10月1日) ASTRO文件资源管理器仅为其进程添加mime类型.它们不能在其进程外读取,因此我没有任何可行的示例.
我一直在查看MimeTypeMap源代码,看起来它只使用一组预定义的mime类型,你不能添加一个新的.
我尝试使用反射(只是为了检查)并且能够添加mime类型,但它只对我的进程可见,就好像我的进程有自己的MimeTypeMap副本,因此电子邮件客户端仍然不会打开附件.
有人可以帮忙吗?
提前致谢
据我了解,您的数据规范仅基于文件扩展名.xyz。因此,当您在意图过滤器中声明它时,您需要确保对除patternPath.
尝试将其分成几个<data>标签,并确保它与以下内容无关mimeType:
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.xyz" />
<data android:host="*" />
Run Code Online (Sandbox Code Playgroud)
另请参阅相关文档<data>以确保所有子类型都匹配。
据我了解,文件的底层数据结构可能会在某些设备上引起问题。假设您的.xyz文件类型是 XML;电子邮件客户端可能认为提供的text/xmlmime 类型比您声明的类型更具体,因此会调用它。
在这种情况下,解决方案可能是声明多个意图过滤器,一次也包括<data android:mimeType="text/xml" />. (这或多或少与这个答案所暗示的一致。)
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |