I'm trying to get a directory files list in order to have a list and, later, choose one under android and delphi 11.0. After severals long search (here) and unsuccessful tries at the end i found this post.
Delphi Rio fails to read external storage with READ_EXTERNAL_STORAGE permissions set
Where Dalija gave this code:
uses
System.Permissions,
Androidapi.Helpers,
Androidapi.JNI.App,
Androidapi.JNI.OS,
...
procedure TMainForm.AddFiles;
var
LFiles: TArray<string>;
LFile: string;
begin
LFiles := TDirectory.GetFiles(TPath.GetSharedDownloadsPath);
for LFile in LFiles do
begin
Memo1.Lines.Add(LFile);
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE)],
procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
begin
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
begin
Memo1.Lines.Add('GRANTED');
AddFiles;
end
else
begin
Memo1.Lines.Add('NOT GRANTED');
end;
end)
This code works great under delphi 10.4 update 2 but not under delphi 11.0
Why ??
I'm not able to run it on 11.0 (with new procedure's syntax, i.e APermissions: TArray<string>
in delphi 10.4 now is APermissions: TClassicStringDynArray
in delphi 11)
Thank's for any help
Daniele