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 11-10-2023
Avatar de vroa74
vroa74 vroa74 is offline
Miembro
 
Registrado: jul 2006
Posts: 254
Poder: 19
vroa74 Va por buen camino
Question Compartir en

Estoy intentando hacer un programa una de sus funcionalidades indispensable es la de poder enviar documentos, pense que la mejor forma de jacerlo por la gran veridad de opciones seria la de corpartir en..


no tengo la menor idea de por donde empezar a escribir o a que instancia debo invocar
si les agradeceria su apoyo cualquie indicacion manual o videotutoria se le agradeceria.
Responder Con Cita
  #2  
Antiguo 11-10-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En el caso de fotos/Imágenes, es bastante sencillo a través de las acciones estandard de una TActionlist; New/Standard Action para añadir una nueva del tipo TShowShareSheetAction (https://docwiki.embarcadero.com/Libr...areSheetAction).

En el caso de otro tipo de ficheros, creo que debes ir a utilizar "intents" con la acción ACTION_SEND.
Busca información sobre:
Código Delphi [-]
TJIntent.JavaClass.ACTION_SEND
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-10-2023
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 61
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 22:53:29.
Responder Con Cita
  #4  
Antiguo 16-07-2024
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 115
Poder: 22
cancun Va por buen camino
Muchas gracias, lo probé en 10.4 y funciona bien.
__________________
Cancun, Q.Roo, México
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 21:45:17
Compartir archivo de RED igest2000 Varios 9 09-08-2005 22:58:29
Compartir BD en red karymas Firebird e Interbase 9 20-06-2005 13:57:57
Compartir directorio D@byt Varios 7 13-06-2005 20:02:49
Compartir una carpeta D@byt Varios 2 30-05-2005 20:03:29


La franja horaria es GMT +2. Ahora son las 01:31:36.


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