这与如何从电子邮件应用程序中使用我的应用程序打开附件有关的问题?(mime type, intent filter ...)我以为我已经解决了,但事实并非如此。
我发现一些电子邮件客户端(例如,三星 Galaxy SII 内置电子邮件客户端)不支持 sendIntent.setType() 方法,并且在向电子邮件添加附件时,它不会添加 setType 方法中指定的 mime 类型. 结果是当电子邮件到达时我无法打开附件。
因此,为了能够从任何电子邮件客户端打开附件,我认为他们唯一的方法就是创建一个与我的自定义扩展相关联的新 mime 类型。
但我找不到任何方法来注册新的 mime 类型。我知道它可以像某些应用程序那样完成(ASTRO 文件资源管理器),但我不知道在哪里可以找到有关添加新 mime 类型的信息。
编辑(2012 年 10 月 1 日) ASTRO 文件资源管理器仅为其进程添加 mime 类型。它们无法在其进程之外被读取,因此我没有任何可以使用的示例。
我一直在查看 MimeTypeMap 源代码,看起来它只使用一组预定义的 mime 类型,您不能添加新的类型。
我尝试使用反射(只是为了检查)并且能够添加一个 mime 类型,但它只对我的进程可见,就好像我的进程有自己的 MimeTypeMap 副本,所以电子邮件客户端仍然不会打开附件。
有人可以帮忙吗?
提前致谢