【问题标题】:How to send email using gmail app in Delphi XE5?如何在 Delphi XE5 中使用 gmail 应用程序发送电子邮件?
【发布时间】:2014-04-22 08:12:40
【问题描述】:

这很简单:我正在尝试使用 Android 版 gmail 应用程序创建电子邮件,就像您使用 gmail 共享内容一样。我不知道该怎么做。

【问题讨论】:

标签: android delphi gmail firemonkey delphi-xe5


【解决方案1】:

找到了:

procedure TfrmSendMail.CreateEmail(const Recipient, Subject, Content,
  Attachment, Attachment2: string);
var
  Intent: JIntent;
  Uri: Jnet_Uri;
  AttachmentFile: JFile;

begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_SEND_MULTIPLE);
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, StringToJString(Recipient));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content));

  AttachmentFile := SharedActivity.getExternalFilesDir
    (StringToJString(Attachment));


  Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile);


  Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM,
  TJParcelable.Wrap((Uri as ILocalObject).GetObjectID));


  Intent.setType(StringToJString('vnd.android.cursor.dir/email'));

  SharedActivity.startActivity(Intent);
end;

【讨论】:

  • 此代码滥用Activity.getExternalFilesDir() 方法。假设Attachment 是实际附加文件的完整路径,请改用AttachmentFile := TJFile.JavaClass.init(StringToJString(Attachment))
  • 另外,Intent.EXTRA_EMAILdocumented,因为它需要一个 array 字符串值,但您传递给它的是一个 single 字符串。
猜你喜欢
  • 2013-10-08
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 2023-03-18
  • 2015-07-31
  • 2013-06-15
相关资源
最近更新 更多