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 17-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Leer imagen de la carpeta Pictures de Android

Hola a todos. Un saludo porque hace mucho que no nos comunicamos.
Requiero vuestra colaboración una vez más. Me explico.
Mi intención es incorporar un icono que he copiado previamente desde Windows por USB en la carpeta Pictures, a mi app.

Tengo entendido algunas cosas (que alguien me corrija si me equivoco, por favor)
1.- Desde Android 11 sólo se pueden leer los archivos que ha creado tu app.
2.- Se han creado nuevos permisos a partir de Android 13
3.- Habilitando el permiso MANAGE_EXTERNAL_STORAGE te prmite leer todos los archivos. (Esto lo he leído en las instrucciones de Google para desarrolladores)

La cuestión es que (como Google sigue poniendo cada vez mas trabas en Play Store), tengo que qctualizar las app's que tengo publicadas.

Concretamente tengo una app que permitía al usuario personalizar el icono de la misma.
El procedimiento era sencillo: el usuario copiaba su icono desde Windows en la carpeta Pictures de su dispositivo, y el programa lo leía y lo incorporaba a la app.

Esto ha funcionado perfectamente, (no se hasta qué versión, creo que es la 10). Tengo un dispositivo con la versión 9 y funciona perfecto.

Tengo otro disposistivo con la versión 13 y ya no funciona.

¡PERDÓN POR EXTENDERME!

He modificado el código para adaptarlo a la versión 13 y posteriores (si no cambia Google).

Éste es el código que utilizo:

Código Delphi [-]
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListBox,
  FMX.StdCtrls, FMX.Effects, FMX.Edit, FMX.Objects, FMX.Controls.Presentation,
  FMX.Layouts, System.IOUtils, System.UIConsts, FMX.Helpers.Android,
  System.Permissions, Androidapi.Helpers, Androidapi.JNI.Os, // Para los nuevos permisos
  FMX.Media,
  DW.Consts.Android, DW.Permissions.Helpers;  // Para los nuevos permisos de KastriFree

......................................................................................

const
  Read_Video = 'android.permission.READ_MEDIA_VIDEO';
  Read_Imagen   = 'android.permission.READ_MEDIA_IMAGES';
  Read_Media_Visual =  'android.permission.READ_MEDIA_VISUAL_USER_SELECTED';
  Read_External_Storage = 'android.permission.MANAGE_EXTERNAL_STORAGE';

.................................................................................................
procedure TLogo.Button1Click(Sender: TObject);
var
   DataFile : String;
   MiMap: FMX.Graphics.TBitmap;
   Permitido : Boolean;

begin

if TOSVersion.Check(13)  // antes de la versión 13 creo que no existen estos permisos
then
  PermissionsService.RequestPermissions([Read_Video, Read_Imagen, Read_Media_Visual, Read_External_Storage],
  procedure(const APermissions: TPermissionArray; const AGrantResults: TPermissionStatusArray)
  begin
//  ShowMessage( Length(AGrantResults).ToString);
   if (Length(AGrantResults) = 4)
   then begin
        // ShowMessage('Se aceptaron todos los permisos.');
        end
   else begin
        Mensaje('Si no concede permiso para leer el fichero Icono144x144.bmp, que debería '+
                'haber copiado en la carpeta Pictures de su dispositivo, no podremos '+
                'cambiar el logotipo de su aplicación.', 0);
        Exit;
        end;

  end
  ); // fin permissions

// Si concedió los permisos o si es una versión anterior a la 13  continuamos...

  DataFile := TPath.Combine(TPath.GetSharedPicturesPath, 'Icono144x144.bmp');
  if not FileExists(DataFile)
  then begin
       Mensaje('No se encuentra el fichero "Icono144x144.bmp" en la carpeta "Pictures" de su dispositivo.', 0);
       exit;
       end
  else begin
         Edit1.Text := 'Icono144x144.bmp';
     //    try  // Comentando try para ver el error
           MiMap := FMX.Graphics.TBitmap.Create();
           MiMap.LoadFromFile(DataFile); // Aquí está el error "Acceso denegado"
     //    except
              begin
               Mensaje('No se puede leer el archivo "Icono144x144.bmp" o tiene un formato erróneo.', 0);
               MiMap.Free;
               Exit;
              end;
     //    end; //try

         if (MiMap.Height<>144) or (MiMap.Width<>144)
         then begin
              Mensaje('Ajuste el tamaño de la imagen a 144 por 144 pixeles y vuelva a intentarlo.', 0);
              MiMap.Free;
              exit;
             end;
         Image1.Bitmap := MiMap;
         MiMap.Free;
       end;
end; //Button1Click

He comentado el try para ver el error que lanza Android y he obtenido que aunque reconoce que el archivo del icono está ahí, pero responde que "Permission denied" para leerlo.

No sé si esto tiene alguna solución. Os comento que llevo ya una semana buscando y leyendo cosas, pero no he encontrado nada que lo resuelva. Lo más cercano es el permiso de MANAGE_EXTERNAL_STORAGE que, si lo subo a Play Store, creo que lo tiene que autorizar Google. Pero supongo que en la opción Release/Deployment no tendría que autorizarlo.

LOS 4 PERMISOS HAN SIDO GRANTED, AUNQUE NO HA PEDIDO LOS PERMISOS.

Perdón por haberme extendido, pero como dice Germán (Neftalí) " Más tiempo dedicado a la pregunta=Mejores respuestas. "

Gracias de antemano por leerme y por intentar ayudarme.

Un saludo muy afectuoso.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #2  
Antiguo 17-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Tienes que usar "Pictures"? ¿no puedes usar "Downloads"?
Responder Con Cita
  #3  
Antiguo 17-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Me daria igual.
Ya he probado con Download y con DCIM. (No he probado con Documents ni con otras).
Con el mismo resultado.
Parece ser que si tu app no ha generado el archivo no te deja leerlo. Esto a partir de la versión 11 de android.

Graccias por tu interés Casimiro.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 17-09-2023 a las 21:43:55.
Responder Con Cita
  #4  
Antiguo 18-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Supongo que puedes usar "ContentChooser".
Responder Con Cita
  #5  
Antiguo 18-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Admito mi ignorancia, Casimiro.
No sé qué es ni cómo se usa ContentChooser.
Sospecho que el problema está en la procedencia del fichero. Es decir que Android 11 y posteriores reconocen la app que ha guardado el fichero y no permiten leerlo con otra app.
Aunque no estoy muy seguro de que sea así. Haré una prueba para confirmar esto y os comento.
Pero esto no reolvería mi problema: el usuario tiene que poner el logo en una carpeta para que la app pueda leerlo.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #6  
Antiguo 18-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En teoría no se podrá acceder a ninguna carpeta que no sea la propia de la aplicación (google cada día es más restrictivo y está llegando al límite de lo absurdo).
Porque según ese nuevo control entonces no se podría descargar nada con el navegador web, ni se podría abrir un pdf, imagen ni nada que hayamos descargado.
Ya digo, es algo absurdo.
Prueba a buscar un ejemplo que use ContentChooser, puede que te sirva.
No tengo ejemplos para Delphi.
Responder Con Cita
  #7  
Antiguo 18-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
¡¡CONFIRMADO!!
Con estos cambios en el código me deja leer el logo bmp que está en la carpeta Pictures.
Las restricciones que comentaba antes son ciertas.
Código Delphi [-]
// Si concedió los permisos o si es una versión anterior a la 13  continuamos...
 DataFile := TPath.Combine(TPath.GetSharedPicturesPath, 'Icono144x144.bmp');
  DataFile2 := TPath.Combine(DirSDCard,'Icono144x144.bmp');
 Fichero.Copy( Datafile2, DataFile,True);
  Sleep(5000);
  DataFile := TPath.Combine(TPath.GetSharedPicturesPath, 'Icono144x144.bmp');
  if not FileExists(DataFile)
  then begin
       Mensaje('No se encuentra el fichero "Icono144x144.bmp" en la carpeta "Pictures" de su dispositivo.', 0);
       exit;
       end
  else begin
         Edit1.Text := 'Icono144x144.bmp';
     //    try  // Comentando try para ver el error
           MiMap := FMX.Graphics.TBitmap.Create();
           MiMap.LoadFromFile(DataFile); // Aquí está el error "Acceso denegado"
     //    except
         {     begin
               Mensaje('No se puede leer el archivo "Icono144x144.bmp" o tiene un formato erróneo.', 0);
               MiMap.Free;
               Exit;
              end;      }
     //    end; //try

Aqui está la explicación de lo que yo sospechaba, y ha quedado demostrada.
Lo que no sé es porqué si yo he solicitado el permiso MANAGE_EXTERNAL_STORAGE y ha sido concedido, no me permite el acceso.
No sé cómo resolver este problema.
VAMOS A TENER QUE DEJAR DE SUBIR APP'S A PLAY STORE Y DESARROLLARLAS PARA ANDROID.
NO ES POSIBLE QUE TODOS LOS AÑOS TENGAS QUE JUGAR CON UNAS REGLAS DE JUEGO NUEVAS.
¡¡ Y TENGAS QUE MODIFICAR LAS APP'S CADA AÑO !!
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 18-09-2023 a las 16:15:45.
Responder Con Cita
  #8  
Antiguo 18-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Ahora me estoy planteando si se puede acceder por USB desde el dispositivo android a un PC Windows.
PARA RESOLVER EL PROBLEMA.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #9  
Antiguo 18-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jhonalone Ver Mensaje
...
VAMOS A TENER QUE DEJAR DE SUBIR APP'S A PLAY STORE Y DESARROLLARLAS PARA ANDROID.
NO ES POSIBLE QUE TODOS LOS AÑOS TENGAS QUE JUGAR CON UNAS REGLAS DE JUEGO NUEVAS.
¡¡ Y TENGAS QUE MODIFICAR LAS APP'S CADA AÑO !!
Saludos.

Yo no uso la "play store" por ese motivo, cambian cualquier cosa en cualquier momento y sin pensar en lo que puede afectar a los demás.
Si la aplicación es un juego o algo "sin importancia" puedes intentar resolverlo sin prisas buscando alguna alternativa, peeeeero si es una aplicación que están usando empresas en el trabajo diario y te llaman diciendo algo así como: "¡¡¡Que hemos comprado nuevos dispositivos y no funciona el programa, tenemos a los vendedores sin poder trabajar!!!"
Entonces urgentemente te pones a investigar y resulta que esos nuevos dispositivos tienen una nueva versión de Android que restringe alguna cosa que antes estaba permitida... y te vuelves loco trabajando montones de horas investigando y probando para encontrar una alternativa y finalmente enviar el programa para que todos los clientes puedan actualizarse.
¡¡¡Eso no es vida!!!
Responder Con Cita
  #10  
Antiguo 18-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
¡COMPLETAMENTE DE ACUERDO!
PERO ¿QUE ALTERNATIVA TENEMOS?
GOOGLE NOS TIENE EN SUS MANOS.
SI TE VAS A APLE TE VAS A ENCONTRAR ALGO PARECIDO Y CON TODOS LOS TERMINALES MUCHO MAS CAROS.
A ver qué alternativa encuentro.
Si es así lo publicaré por si le sirve a alguien.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #11  
Antiguo 18-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Muy "fácil", no subirlos a la play store
Entiendo que si es un juego o alguna aplicación "general" que buscar tener miles de usuarios, entonces no queda más remedio que adaptarla para subirla a la play store.
Pero, te explico mi caso, los usuarios de mis aplicaciones son todos empresas, nadie va a encontrar la aplicación en ninguna "store" para descargarla e instalarla, así que lo que tengo es mi propia "store", no es más que un hosting donde subo la última versión. El funcionamiento es simple:
El usuario inicia la aplicación en su dispositivo, compruebo la versión instalada y compruebo en la web la versión última que hay. Si existe en la web una versión más nueva entonces aviso al usuario por si quiere actualizarla (sí/no/en otro momento). Si selecciona "Sí" entonces la descargo y la instalo. Listo.

Así me olvido por completo de la google store y de las "tonterías" de google con cada versión.
De todas formas, incluso de esa manera, surgen también problemas por cambios en las versiones de Android, pero al menos puedo seguir haciendo cosas que ellos no permiten, por ejemplo, leer/copiar tranquilamente de cualquier directorio "prohibido", como es el caso que estamos tratando.
Responder Con Cita
  #12  
Antiguo 18-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Es una solución muy inteligente.
Tomo nota. Aunque creo que me puede llevar mucho tiempo implementarla.
Gracias por la idea Casimiro.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #13  
Antiguo 20-09-2023
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 61
Poder: 6
dani36652 Va camino a la fama
Android 11 y Android 13 han tenido cambios significantes en cuanto a privacidad y seguridad. Dichos cambios han tenido alcance a nivel del Almacenamiento interno.
No puedes acceder a carpetas específicas del almacenamiento en Android 11 y superior ya que no basta solamente con pedir los tipicos permisos en tiempo de ejecución del almacenamiento interno.
Aparte de ello, también debes pedir un permiso para administrar el almacenamiento interno.
Justamente hoy leí tu problema y actualicé el siguiente repositorio en GitHub para atender problemas relacionados ya que embarcadero no ha implementado esta parte ni en la version de Delphi más actual que es 11.3.

Te dejo el link: https://github.com/dani36652/Delphi-...-y-Posteriores
Recuerda: la rama "main" es el parche para Delphi 11.0 y la rama "Delphi-11.3" es el parche para dicha versión.
Espero te sea de ayuda.
Responder Con Cita
  #14  
Antiguo 20-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Hola, Dani. Muchas gracias por el aporte y el esfuerzo que te habrá llevado.
Además, gracias por la generosidad de compartirlo.
He descargado el arcchivo .zip.
De momento sólo viene la rama "Main" que corresponde a Delphi 11.0.
Es la versión que estoy usando y espero que me sirva.
Ya te contaré cuando la pruebe.
Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #15  
Antiguo 20-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Dani, ¡ CASI... CASI... LO TENGO !
¡¡¡ HAS HECHO UN TRABAJO FABULOSO !!!
Sería perfecto para mí con las 2 acciones siguientes:
1.- Si fuera posible activar el permiso sin mostrar la pantalla para que lo active el usuario.
2.- ¿Como desactivar el permiso despues de usarlo? Claro sin la intervención del usuario.
¿Podrias ayudarme con éso? Aunque sea solamente dándome un par de ideas.

Gracias de antemano.
un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #16  
Antiguo 20-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jhonalone Ver Mensaje
Dani, ¡ CASI... CASI... LO TENGO !
¡¡¡ HAS HECHO UN TRABAJO FABULOSO !!!
Sería perfecto para mí con las 2 acciones siguientes:
1.- Si fuera posible activar el permiso sin mostrar la pantalla para que lo active el usuario.
2.- ¿Como desactivar el permiso despues de usarlo? Claro sin la intervención del usuario.
¿Podrias ayudarme con éso? Aunque sea solamente dándome un par de ideas.
Gracias de antemano.
un saludo.
Eso es algo del propio Android, no creo que puedas cambiar su funcionamiento.
Para quitar el permiso es más fácil porque el propio Android lo hará si la aplicación no hace uso de ese permiso.
Responder Con Cita
  #17  
Antiguo 21-09-2023
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 61
Poder: 6
dani36652 Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Dani, ¡ CASI... CASI... LO TENGO !
¡¡¡ HAS HECHO UN TRABAJO FABULOSO !!!
Sería perfecto para mí con las 2 acciones siguientes:
1.- Si fuera posible activar el permiso sin mostrar la pantalla para que lo active el usuario.
2.- ¿Como desactivar el permiso despues de usarlo? Claro sin la intervención del usuario.
¿Podrias ayudarme con éso? Aunque sea solamente dándome un par de ideas.

Gracias de antemano.
un saludo.
Buenas tardes estimado, lamento comentarle que no se puede hacer de la forma que busca implementarlo, debido a que como ya mencioné antes son medidas de seguridad que implementó google para que el usuario sepa qué aplicaciones tienen acceso al almacenamiento interno.
Responder Con Cita
  #18  
Antiguo 21-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Entendido.
Gracias Dani. En cualquier caso me resolviste el problema.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #19  
Antiguo 21-09-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no he entendido mal, insisto que con ContentChooser puedes acceder a otros carpetas:
Cita:
ContentChooser
The ContentChooser object allows the user to select a specific type of content using other installed applications.
For example the user can use the internal Gallery application to select an image.
If the user has installed a file manager then the ContentChooser can be used to select general files.
This object should usually be declared as a process global object.
After initializing the object you can let the user select content by calling Show with the required MIME types.
The Result event will be raised with a Success flag and with the content Dir and FileName.
Note that these values may point to resources other than regular files. Still you can pass them to methods that expect Dir and FileName.
Only content types that can be opened with an InputStream are supported.
Responder Con Cita
  #20  
Antiguo 21-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Hola, Casimiro.
Parece interesante. Según entiendo es como una especie de explorador de archivos al estilo de Windows.
Pero ése no es mi propósito.
Mi intención era sólo para leer un archivo que estaba en un determinado directorio y con unas características determinadas: nombre, formato...
Hasta la versión 11 estaba permitido.
Ahora con la autorización de los permisos de Dani, los cambios que tengo que hacer son mínimos.
Además, al pedirle permiso al usuario, el "amigo" Google no se "enfadará" mucho.
Gracias por tu interés.
Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
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
Leer archivos de una carpeta Jad Varios 3 11-12-2022 17:10:54
Acceder a una carpeta de un servidor desde Android jooooseph Desarrollo en Delphi para Android 2 15-10-2022 00:28:52
Acceso a carpeta Download en Android 12. voci Desarrollo en Delphi para Android 7 26-04-2022 19:18:01
Error al leer imagen de galeria Android Lollipop edorantes Desarrollo en Delphi para Android 1 18-04-2015 19:26:03
leer archivos de una carpeta pgrdelphi Varios 2 06-09-2011 01:18:16


La franja horaria es GMT +2. Ahora son las 00:58:40.


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