如何在Android中通过电子邮件发送图片,预览但未附加..?

时间:2012-11-26 10:43:20

标签: android android-intent

我想在我的邮件Intent中发送图片预览。 我不想附上它,我只想让它显示出来。

这是我的意图:

String textToSend = getString(R.string.mailHi)+"<br><br>"+getString(R.string.mailText)+getTextToSendViaMail();
                    Uri pngUri = null;
                    File currentShopImage = new File(Environment.getExternalStorageDirectory().toString()+"/OpenGuide/"+Integer.toString(keyId)+"_1_normal.pn_");

                    if(currentShopImage.exists()){

                        File pngFile = new File(currentShopImage.toString());
                        pngUri = Uri.fromFile(pngFile);
                    }

                    Intent i = new Intent(Intent.ACTION_SEND);
                    i.setType("text/plain");
                    //i.putExtra(Intent.EXTRA_EMAIL, new String[] { emailCim });
                    i.putExtra(Intent.EXTRA_SUBJECT, "OpenGuide");
                    i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(textToSend));
                    if(pngUri!= null)
                    i.putExtra(Intent.EXTRA_STREAM, pngUri);
                    try {
                        startActivity(Intent.createChooser(i, getString(R.string.SendMail)));
                    } catch (android.content.ActivityNotFoundException ex) {
                        Toast.makeText(ShopActivity.this, getString(R.string.MailClientNotFound), Toast.LENGTH_SHORT).show();
                    }

我怎么能做到这样的事情?

2 个答案:

答案 0 :(得分:1)

然后你需要发送一个HTML生成的电子邮件。

答案 1 :(得分:1)

据我了解您的问题,您希望将图像放在邮件中,并附上其他文字。用电子邮件协议的话来说,它被称为INLINE附件。

您无法使用intents执行此操作,因为设备上安装的所有电子邮件客户端都不支持创建html消息。

如果它真的是您应用的核心部分,您应该考虑使用第三方API来执行此操作。其中一个库是JavaMail。您可以通过此库发送html消息,但需要一些时间进行设置。

这里有一个link可能会给你一些提示,它是如何完成的。