Mam's WebSite

Mamの覚書Q&A検索


大項目:「 Delphi 」 - 中項目:「 FMX_Android 」

「 メール送信 」

メール送信


回答

ソース

unit U_EMain;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs
  ,Androidapi.JNI.JavaTypes// JString
  ,Androidapi.JNI.GraphicsContentViewText// JIntent
  ,Androidapi.Helpers
  , FMX.StdCtrls, FMX.Layouts, FMX.Memo// JStringToString
  ,FMX.VirtualKeyboard //IFMXVirtualKeyboardService
  ,FMX.Platform.Android //MainActivity
  ,FMX.Helpers.Android
  ,FMX.Platform //TPlatformServices
  ;
 
type
  TForm2 = class(TForm)
    B_EMailSend: TButton;
    procedure B_EMailSendClick(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
      Shift: TShiftState);
  private
    { private 宣言 }
  public
    { public 宣言 }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.fmx}
 
procedure TForm2.B_EMailSendClick(Sender: TObject);
var ei:JIntent;
begin
  ei:=TJIntent.Create();
  ei.setAction(TJIntent.JavaClass.ACTION_SEND);
  ei.setType(StringToJString('plain/text'));
 
  ei.putExtra(
    TJIntent.JavaClass.EXTRA_SUBJECT,
    StringToJString('件名')
  );
 
  ei.putExtra(
    TJIntent.JavaClass.EXTRA_EMAIL,
    StringToJString('hoge@a.a')
  );
  ei.putExtra(
    TJIntent.JavaClass.EXTRA_TEXT,
    StringToJString('メッセージ色々')
  );
  ei.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
 
  FMX.Helpers.Android.SharedActivityContext.startActivity(ei);
 
end;
 
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
var Keyboard:IFMXVirtualKeyboardService;
begin
  //Androidのbackキーを処理する
  if Key=vkHardwareBack then
  begin
    keyboard:=TPlatformServices.Current.GetPlatformService(
      IFMXVirtualKeyboardService
    ) as IFMXVirtualKeyboardService;
    if TVirtualKeyboardState.Visible in keyboard.VirtualKeyboardState then
      exit;
    MainActivity.moveTaskToBack(True);
    Key:=0;
 
  end;
end;
end.

Copyright 2019 Mam