Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2023
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 57
Poder: 6
dani36652 Va camino a la fama
Post

Desconozco si solo me ocurrió a mí pero el usar TActionList en mi caso no funcionó para llevar a cabo la funcionalidad al usar Delphi 10.4.2 Sydney.
Sin embargo, puedes hacerlo de esta manera tanto en Sydney como en Alexandria.
Antes que nada debes marcar el checkbox de la opción Secure File Sharing en las opciones de tu proyecto.
Y el método quedaría de esta manera.
Código Delphi [-]
uses 
    {$IFDEF ANDROID}
     Androidapi.JNI.Provider,Androidapi.Jni.Support,Androidapi.StorageManager,
     Androidapi.jni,fmx.helpers.android, Androidapi.Jni.app,
     Androidapi.Jni.GraphicsContentViewText, Androidapi.JniBridge,
     FMX.ScrollBox, FMX.Memo,Androidapi.JNI.Os, Androidapi.Jni.Telephony,
     Androidapi.JNI.JavaTypes,idUri,Androidapi.JNI.NET, Androidapi.Helpers,
     Androidapi.JNI.Widget, Grijjy.TextToSpeech, FMX.Media, FMX.Advertising;
    {$ENDIF}
    
    procedure CompartirCon;
var
  Intent:JIntent;
  Uri:JNet_Uri;
  arch:JFile;
  Uris:JArrayList;
  FilePath: string;
  FileName: string;
  Toast: JToast;
begin
  //Ejemplo
  FilePath:= TPath.GetDocumentsPath + PathDelim;
  FileName:= FilePath + 'Archivo.txt';

  if tfile.Exists(FileName) then
  begin
    Uris:=TJArrayList.JavaClass.init;
    arch:=TJFile.JavaClass.init(StringToJString(FileName));
    arch.setReadable(true,false);
    Uri:= TAndroidHelper.JFileToJURI(arch);
    Uris.add(Uri);
    Intent:=TJIntent.Create;
    Intent.setAction(TJIntent.JavaClass.ACTION_SEND_MULTIPLE);
    Intent.setType(StringToJString('text/plain')); (*Es el homólogo a MimeType y es opcional;
    documentación: https://developer.android.com/refere...mon/MimeTypes*)
    Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
    Intent.putParcelableArrayListExtra(TJIntent.JavaClass.EXTRA_STREAM, Uris);
    try
      (* Puedes usar únicamente una de estas dos *)
      TAndroidHelper.Activity.startActivity(Intent); //Esta forma

      TAndroidHelper.Activity.startActivity(TJIntent.JavaClass.createChooser(Intent, //ó esta otra
      StrToJCharSequence('Compartir con...')));
    finally
      Uris.clear;
    end;
  end else
  begin
    Toast:= TJToast.JavaClass.makeText(TAndroidHelper.Context,
    StrToJCharSequence('No existe el archivo especificado.'), TJToast.JavaClass.LENGTH_SHORT);
    Toast.setGravity(TJGravity.JavaClass.CENTER, 0 , 0);
    Toast.show;
  end;
end;

Última edición por dani36652 fecha: 13-10-2023 a las 21:53:29.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Es posible compartir carpetas por Internet utilizando compartir carpetas? JuanErasmo Windows 5 12-02-2007 20:45:17
Compartir archivo de RED igest2000 Varios 9 09-08-2005 21:58:29
Compartir BD en red karymas Firebird e Interbase 9 20-06-2005 12:57:57
Compartir directorio D@byt Varios 7 13-06-2005 19:02:49
Compartir una carpeta D@byt Varios 2 30-05-2005 19:03:29


La franja horaria es GMT +2. Ahora son las 20:43:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi