Перейти к содержанию
Fire Monkey от А до Я

Алексей Данильченко

Пользователи
  • Постов

    4
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные Алексей Данильченко

  1. Может кому пригодится. вот решение.

    procedure TfrmSendEmail.SendEmail();
    {$IF DEFINED(ANDROID)}
    var
      lIntent: JIntent;
      lJRecipient: TJavaObjectArray<JString>;
      lURI: Jnet_Uri;
      lJFile: JFile;
      lFileName: string;
      lFilePath: string;
    {$ENDIF}
    begin
      {$IF DEFINED(ANDROID)}
      lJRecipient:= TJavaObjectArray<JString>.Create(1);
      lJRecipient.Items[0]:= StringToJString(eEmail.Text);
    
      lFileName:= AttachFileName;
      lFilePath:= System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath, lFileName);
    
      lIntent:= TJIntent.Create;
      lIntent.setType(StringToJString('application/excel'));
      lIntent.setAction(TJIntent.JavaClass.ACTION_SEND);
      lIntent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, lJRecipient);
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(eSubject.Text));
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(mEmailMessage.Text));
    
      lJFile:= TJFile.JavaClass.init(StringToJString(lFilePath));
      lURI:= TAndroidHelper.JFileToJURI(lJFile);
      lIntent.setData(lURI);
    
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((lURI as ILocalObject).GetObjectID));
      TAndroidHelper.Activity.startActivity(lIntent);
      {$ENDIF}

     

  2. Доброго времени суток всем.

    Ребята, есть Delphi XE 10.3.2, есть следующий код:

    procedure TfrmSendEmail.SendEmail();
    {$IF DEFINED(ANDROID)}
    var
      lIntent: JIntent;
      lJRecipient: TJavaObjectArray<JString>;

      lURI: Jnet_Uri;
      lJFile: JFile;
      lFileName: string;
      lFilePath: string;
    {$ENDIF}
    begin
      {$IF DEFINED(ANDROID)}
      lJRecipient:= TJavaObjectArray<JString>.Create(1);
      lJRecipient.Items[0]:= StringToJString(eEmail.Text);

      lFileName:= AttachFileName;
      lFilePath:= DMUnit.GetCombineFilePath(lFileName);

      lIntent:= TJIntent.Create;
      lIntent.setAction(TJIntent.JavaClass.ACTION_SEND);
      lIntent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, lJRecipient);
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(eSubject.Text));
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(mEmailMessage.Text));

      lJFile:= TJFile.JavaClass.init(StringToJString(lFilePath));
      lURI:= TAndroidHelper.JFileToJURI(lJFile);
      lIntent.setData(lURI);
      lIntent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((lURI as ILocalObject).GetObjectID));
      lIntent.setType(StringToJString('vnd.android.cursor.dir/email'));

      TAndroidHelper.Activity.startActivity(lIntent);
      {$ENDIF}

    end;

    Всё отлично работает, если отправить сгенерированый html файл. Отправляет по e-mail без проблем. вкладывает в письмо и отправляет.

    Но стоит только прикрепить только что сгенерированый Excel файл и приложение GMail говорит, что Не удалось прикрепить файл. Помогите побороть.

×
×
  • Создать...