Ver Mensaje Individual
  #1  
Antiguo 24-02-2023
Esteban74 Esteban74 is offline
Miembro
 
Registrado: jun 2020
Posts: 12
Reputación: 0
Esteban74 Va por buen camino
Problema para adjuntar archivo a un email

Hola, espero alguien tenga una idea de como encarar esto, ya que no le veo solución y hay muy poca info al respecto, intento crear un email con información ya cargada y adjuntar un archivo de texto (*.csv) uso intents ya que indy no funciona pero obtengo un error que no puedo resolver.
Estoy usando Delphi Comunity Edition 10.4 y pruebo la app en un Moto G52 con android 12
Cito el código y el error a continuación:

Código Delphi [-]
procedure TDM.EnviarCorreo(const Destinatario, Asunto, Contenido, Adjunto: string);
{$IF DEFINED(ANDROID)}
var
  JRecipient: TJavaObjectArray;
  Intent: JIntent;
  Uri, Data: Jnet_Uri;
  AttachmentFile: JFile;
begin

  JRecipient := TJavaObjectArray.Create(1);
  JRecipient.Items[0] := StringToJString(Destinatario);
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Asunto));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Contenido));

  if Adjunto <> '' then
  begin
    if TJBuild_VERSION.JavaClass.SDK_INT >= TJBuild_VERSION_CODES.JavaClass.N then
    begin
      AttachmentFile := TJFile.JavaClass.init(StringToJString(Adjunto));
      Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
      Data := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,
        StringToJString('com.FJAG.StatSuite.fileprovider'), AttachmentFile);
    end
    else
      Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + Adjunto));

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

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

{$ENDIF}
{$IFDEF MSWINDOWS}
  mostrarMensaje('Caracteristica aun no soportada en windows');
{$ENDIF}
end;

Cito el error que se genera:
https://drive.google.com/file/d/1F_M...ew?usp=sharing

Agradecería cualquier ayuda al respecto. Gracias por su tiempo.
Responder Con Cita