你好StackOverflow的团队,
使用Delphi Rio,我有一个Android应用程序,我想发送带有附件zip文件的电子邮件。
关于以下链接,我可以使用Delphi Tokyo(设备6.0、8.0和8.1)来执行此操作,但不能与Rio一起使用:该应用程序在8.0 + 8.1设备上关闭,没有任何消息错误。它可以在我的6.0设备上使用。
How to send email with attachment using default Android email app - Delphi XE7
在调用CreateEmail过程之前已经创建了压缩文件。
此链接stackoverflow.com/a/53605468/3164070确实为我提供了帮助,但现在我有2个目的地地址:
如何删除错误的地址?
这是我的程序:
procedure CreateEmailTest(const _Recipient, _Subject, _Content, _Attachment: string);
var LIntent: JIntent;
LAuthority: JString;
LUri: Jnet_Uri;
JRecipient: TJavaObjectArray<JString>;
begin
LAuthority := StringToJString(JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName) + '.fileprovider');
LUri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, LAuthority, TJFile.JavaClass.init(StringToJString(_Attachment)));
LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEND);
JRecipient := TJavaObjectArray<JString>.Create(1);
JRecipient.Items[0] := StringToJString(_Recipient);
LIntent.removeExtra(StringToJString(_Attachment));//do not remove wrong email adress
LIntent.removeExtra(TJIntent.JavaClass.EXTRA_EMAIL) ;//do not remove wrong email adress
LIntent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient);
LIntent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(_Subject));
LIntent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(_Content));
LIntent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((LUri as ILocalObject).GetObjectID)); // ajout de la pièce jointe
LIntent.setDataAndType(LUri, StringToJString('vnd.android.cursor.dir/email'));
TAndroidHelper.Activity.startActivity(LIntent);
end;
此致
利福卡布罗