Compilado con delphi 10.3.3 y probado en mi móvil con android 7.
Código Delphi
[-]unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Permissions,
Androidapi.Helpers, Androidapi.JNI.Os, Androidapi.JNI.JavaTypes;
type
TFConfigIP = class(TForm)
procedure FormShow(Sender: TObject);
private
procedure PermisoEscrituraLectura;
procedure Servidor;
public
end;
var
FConfigIP: TFConfigIP;
implementation
{$R *.fmx}
procedure TFConfigIP.FormShow(Sender: TObject);
begin
if (PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.READ_EXTERNA L_STORAGE))= false) or (PermissionsService.IsPermissionGranted(JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERN AL_STORAGE))= false) then
PermisoEscrituraLectura
else
Servidor;
end;
procedure TFConfigIP.PermisoEscrituraLectura;
begin
PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE), JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)],
procedure(const APermissions: TArray<string>; const AGrantResults: TArray)
begin
if (Length(AGrantResults) = 2) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) then
begin
ShowMessage( 'Permiso concedido.');
Servidor;
end
else
ShowMessage( 'Permiso denegado.');
end)
end;
procedure TFConfigIP.Servidor;
begin
end;
end.
Saludos.