Android:未设置电子邮件附件的mime类型

时间:2012-06-08 09:24:59

标签: android mime-types email-attachments

我正在为Android 2.3.3开发一个非常小的应用程序。 我想发送一封电子邮件(通过Android电子邮件应用程序),其中包含一个jpeg图像作为附件,在相关代码下面(仅使用sdk模拟器测试):

public void sendArtwork(View aView){
        EditText subj = (EditText)findViewById(R.id.edit_subj);
        EditText descr = (EditText)findViewById(R.id.edit_descr);
        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.setType("image/jpeg");  // attachment is a jpeg
        emailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{"contribute@unintentional.org"}); 
        emailIntent.putExtra(Intent.EXTRA_SUBJECT,subj.getText().toString()); //get subject from one EditText in the UI
        emailIntent.putExtra(Intent.EXTRA_TEXT,descr.getText().toString()); //get body from one EditText in the UI
        emailIntent.putExtra(Intent.EXTRA_STREAM, fileURI); // add attachment
        startActivityForResult(Intent.createChooser(emailIntent, "Choose Email application:"), EMAIL_CODE);

    }

它按预期工作:它打开一个选配器,创建一个包含正确地址,主题,文本和附件的电子邮件并发送它。

我唯一无法完成的是为图像设置正确的mime类型:正确接收附件(我可以将其分离到磁盘并打开它)但没有内容类型,因此电子邮件客户端(Thunderbird)不显示预览,也无法提供打开它的应用程序。 有没有人对此提出建议?

---- 修改

图像文件发送时没有任何错误:如上所述,如果我将其保存在我的PC上的磁盘上并使用合适的应用程序(即Picasa)打开它,它会正确显示。

1 个答案:

答案 0 :(得分:0)

我使用相同的方法发送电子邮件,并在几个电子邮件客户端的各种版本上进行了测试。 即使gmail是不一致的,一些版本设置附件的mime类型,其他版本忽略它。 我得出结论,没有安全的解决方案。至少不要使用ACTION_SEND意图。