Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Aplicacion Android, Delphi Tokyo v/s Delphi Rio. (https://www.clubdelphi.com/foros/showthread.php?t=94292)

viverosjosem 07-11-2019 05:08:10

Aplicacion Android, Delphi Tokyo v/s Delphi Rio.
 
Estimados.
Tengo una aplicacion (Comandera electronica para tablets), desarrollada para android en Delphi Tokyo 10.2. Esta aplicacion funciona perfectamente bien. Hace todo lo que tiene que hacer de manera perfecta y correctamente.

El problema se produce cuando la misma aplicacion la compilo con delphi Rio 10.3. Esta no funciona, se cuelga de inmediato, y no hace absolutamente nada.

Para lograr determinar que pasa, extraje una pequena porcion del codigo que lee un archivo dentro de la memoria de la tablet, y es, el que les presento ahora.

Código Delphi [-]

procedure TFIncSoftware.CargaFile( sFile: String);
const
   SDCARD      = '/sdcard/download/';

var
   sArchivo : String;
   f : System.TextFile;
   j : String;

begin
   sArchivo := SDCARD + sFile;    // ---> 'Server.csv';

   if (FileExists(sArchivo)) then begin
      AssignFile(f, sArchivo );
      Reset(f);

      while not SeekEof(f) do
      begin
         if SeekEoln(f) then
           Readln;

         Read( f, j );
         j := Trim( j );

         sHost    := GetParam(j, ';');         // --> GetParam, funcion que descompone el String. Tambien lo probe asignando en forna directa y nada.
         Username := GetParam(j, ';');
         Password := GetParam(j, ';');

         showMessage(sHost + ' ' + UserName + ' ' + Password);
      end;

      CloseFile( f );
   end;
end;

Ni siquiera esta pequena porcion de codigo, compilada con Delphi Rio 10.3, funciona en una tablet Android. Pero si funciona correctamente, si se compila con Delphi Tokyo 10.2.

Alguna idea de que pasa?. Sera que Delphi 10.3 Rio, tendra problemas para trabajar con android?.

A alguien le a pasado algo similar?

Saludos.
Gracias.

kurono 07-11-2019 06:55:04

mi pregunta es si funcionaba bien en Delphi Tokyo 10.2 porque lo vuelve a compilar en delphi Rio 10.3

Casimiro Notevi 07-11-2019 10:37:38

Y también, ¿qué quieres decir con que esa pequeña porción de código no funciona? ¿el qué no funciona? exactamente qué línea da error, qué error...
Si no hace nada de nada, como dices, cómo es que llegas a ese código.... Muchas interrogantes.

Neftali [Germán.Estévez] 07-11-2019 12:11:28

Cita:

Empezado por viverosjosem (Mensaje 534317)
Ni siquiera esta pequena porcion de codigo, compilada con Delphi Rio 10.3, funciona en una tablet Android. Pero si funciona correctamente, si se compila con Delphi Tokyo 10.2.


¿Has revisado permisos?
Eso de que "se cuelga de inmadiato" suena a permisos.

viverosjosem 08-11-2019 00:42:25

Hola Amigos. Gracias por responder.

Respondere a cada uno.

Código Delphi [-]
Kurono:
mi pregunta es si funcionaba bien en Delphi Tokyo 10.2 porque lo vuelve a compilar en delphi Rio 10.3
[quote]

Hace dos anos atras compre el Delphi Tokyo. y a la fecha a funcionado todo muy bien. Solo por curiosidad dscargue la version de prueba por 30 dias de Delphi Rio., solo para ver si habia algo neuvo o distinto con la vrsion anterior. Pero cuando com[pile la aplicacion que ya fuinciona bien n tokyo, no funciono en delphi Rio. me llamo la atencion, y por eso formule la pregunta en este foro.

Código Delphi [-]
Kasimiro Notevi:
Y también, ¿qué quieres decir con que esa pequeña porción de código no funciona? ¿el qué no funciona? exactamente qué línea da error, qué error...
Si no hace nada de nada, como dices, cómo es que llegas a ese código.... Muchas interrogantes.
[quote]

Bueno, el punto es que cuando vi que la aplicacion compilada con Delphi Rio, no funcionaba, hice todas las pruebas que se me ocurrieron y nada (LLene el codigo de etiquetas para ver si pasaba por alguna de ellas, pero nada). No funciono. Entonces, decidi tomar solo una parte del codigo, para evaluar mas facilmente. Esa parte del codigo es la que presento en esta consulta. Basicamente el codigo va a la tarjeta de la tablet, abre un archivo, y toma los datos de configuracion para establecer una coneccion al servidor FTP.

En este caso, el codigo solo va a la tablet, abre el archivo, y deberia presentar los datos en pantalla, solo eso. Pero al ejecutar el programa en la tablet, solo presenta la pantalla de splash (La llama Flamando de de Delphi Android), y ahi queda. Solo eso. No da error de ningun tipo.

Pero al igual que en la aplicacion completa, si compilo este programa con delphi Tokyo, sin cambiar absolutamente nada, funciona de inmdiato, y hace lo que tiene que hacer. Presentar en Pantalla: Ip del servidor, Usuario, y Pasword. Pero al compilar en Rio, no hace nada.

Código Delphi [-]
Neftali.

¿Has revisado permisos?
Eso de que "se cuelga de inmadiato" suena a permisos.
[quote]

Si, todos los permisos activos. Pero como ya e mensionado, solo se produce el problema con Delphi Rio.

Formule la pregunta, por que me llamó la atencion que algo que funciona perfectmente en una version anterior de delphi (Tokyo), no funcione en una version, que se supone mejorada (Rio).

Saludos.
Y gracias a todos.

Neftali [Germán.Estévez] 08-11-2019 13:18:57

Cita:

Empezado por viverosjosem (Mensaje 534348)
Si, todos los permisos activos. Pero como ya e mensionado, solo se produce el problema con Delphi Rio.

Formule la pregunta, por que me llamó la atencion que algo que funciona perfectmente en una version anterior de delphi (Tokyo), no funcione en una version, que se supone mejorada (Rio).


Lo decía porque es posile que al compilar y hacer el Deployment te los hubiera cambiado.
¿Las estás compilando con la misma versión de la API de Android?

viverosjosem 09-11-2019 00:53:58

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 534358)
Lo decía porque es posile que al compilar y hacer el Deployment te los hubiera cambiado.
¿Las estás compilando con la misma versión de la API de Android?

Hola Neftali.

Utilizo esta misma configuracion de android, para delphi Tokyo, y Delphi Tokyo. "Tools-Options-Environment Option-SDK Manager"

Es a esta configuracion que te refieres?

Saludos.
Jose Miguel.

jhonny 20-11-2019 13:39:55

Cita:

Empezado por viverosjosem (Mensaje 534373)
Hola Neftali.

Utilizo esta misma configuracion de android, para delphi Tokyo, y Delphi Tokyo. "Tools-Options-Environment Option-SDK Manager"

Es a esta configuracion que te refieres?

Saludos.
Jose Miguel.

Hola, el SDK que viene por defecto en RIO es la versión 26...

A mí también me suena que es un tema de permisos, en dicha versión debes manejar permisos en Runtime...

http://docwiki.embarcadero.com/RADSt...rmission_Model

Ya que Android lo exige de esa manera.

viverosjosem 21-11-2019 05:45:13

Hola.
Efectivamente era un problema de permisos. Tal como menciona jhonny, delphi Rio viene con un SDK 26, que exige habilitar los permisos directamente en la aplicacion, por codigo.

Agregue, estas lineas de codigo en el "Create" de mi aplicacion, y funciono perfectamente.
Código Delphi [-]
   PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE)],
   procedure(const APermissions: TArray<string>; const AGrantResults: TArray)
   begin
      if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then

Código Delphi [-]
procedure TFCentral.FormCreate(Sender: TObject);
begin
   PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE)],
   procedure(const APermissions: TArray<string>; const AGrantResults: TArray)
   begin
      if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
         begin
           if (ActivaFTP) then  
             lbEstado.Text := 'Conectado'
          else
            lbEstado.Text := 'No conectado';
         end;
      end)
end;

Agradecido a todos por su ayuda.
Saludos.
Jose Miguel.

Neftali [Germán.Estévez] 21-11-2019 11:04:00

Gracias por la explicación.
^\||/^\||/^\||/

jhonny 21-11-2019 19:10:47

Estupendo,

Sucede que los sistemas operativos actuales viven en constante cambio y Delphi no se queda atrás, por lo cual debe implementar estas mejoras de compatibilidad en cada lanzamiento que se hace.

Gracias por comentarnos la solución.

cocute 19-01-2020 12:53:13

a mi me ocurre algo parecido, pero prefiero compilar mi aplicación con Tokio,
si la compilo con Rio eso de los permisos del ONcreate demora un poco el inicio del programa y me lo afea ya que tardan en aparecer los datos de mi aplicación,


La franja horaria es GMT +2. Ahora son las 00:49:10.

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