Ver Mensaje Individual
  #10  
Antiguo 25-02-2021
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Reputación: 0
viverosjosem Va por buen camino
Hola Casimiro y Voci.
Aqui va una procion de codigo que e probado en Delphi Tpkyo, y Delphi Rio. En Delphi Tokyo finciona. En Delphi Rio, se cuelga. Los permisos los active manualmente desde telefono Android.

Código Delphi [-]
...
...
var
  // Permissions
  vReader_Access: string;
  vWrite_Access: string;
...
...

procedure TFConfigIP.FormCreate(Sender: TObject);
begin
   vReader_Access := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
   vWrite_Access    := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
end;



procedure TFConfigIP.FormShow(Sender: TObject);
begin
  if TOSVersion.Check(6) then
  begin
    PermissionsService.RequestPermissions([vReader_Access, vWrite_Access], LocationPermissionRequestResult);
  end
end;


procedure TFConfigIP.LocationPermissionRequestResult(Sender: TObject;
  const APermissions: TArray<string>;
  const AGrantResults: TArray);
var
  LocationPermissionGranted: Boolean;
  sFile   : String;

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

   LocationPermissionGranted := (Length(AGrantResults) = 2) and
     (AGrantResults[0] = TPermissionStatus.Granted) and
     (AGrantResults[1] = TPermissionStatus.Granted);

   //======>> Aqui ya no entra. En Tokyo, todo bien. Pero en Delphi Rio, se cuelga, y no presenta ningun tipo de mensaje.
    
   if LocationPermissionGranted then begin
      if (FileExists(sFile)) then begin
         ShowMessage( 'Permiso concedido.');
         CargaServer(sFile);
      end
      else begin
         ShowMessage( sFile + ', no encontrado. lo crearemos.');
         FTP_Server;
      end;
   end
   else
      ShowMessage( 'Permiso denegado.');
end;


procedure TFConfigIP.CargaServer(sFile: String);
var
   f : System.TextFile;
   j : String;

begin
   AssignFile(f, sFile );
   Reset(f);

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

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

      EdServer.Text  := GetParam(j, ';');    // GetParam, es una funcion que descompone un String. En este caso, separado por ";"
      EdCodigo.Text  := GetParam(j, ';');
      EdPasword.Text := GetParam(j, ';');
   end;

   CloseFile( f );
end;

Espero que este ejemplo sirva de algo, y, me puedan dar luces de que esta pasando.

Gracias.

Saludos.
Jose Miguel.
Responder Con Cita