0

我想在我的邮件 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();
                    }

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

4

2 回答 2

1

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

于 2012-11-26T10:53:58.727 回答
1

据我了解您的问题,您希望将图像与其他文本一起放在邮件中。用电子邮件协议的话来说,它被称为内联附件。

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

如果它确实是您应用程序的核心部分,您应该考虑使用第三方 api 来执行此操作。这样的库之一是JavaMail。您将能够通过此库发送 html 消息,但需要一些时间进行设置。

这是一个链接,可能会给您一些提示,它是如何完成的。

于 2012-11-26T11:47:13.073 回答