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