Написал программу на delphi 10.4 под андроид, в программе есть запрос на доступ к файлам чтения и записи, вот такой:
procedure TForm1.Button1Click(Sender: TObject);
begin
//запрашиваем и узнаем что дал права
PermissionsService.RequestPermissions([FPermissionWrite, FPermissionRead], PermissionRequestResult, ExplainReason);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//заносим значения при открытии
FPermissionWrite := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); //Значение на запись
FPermissionRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); //Значение на чтение
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//запрашиваем и узнаем что дал права
PermissionsService.RequestPermissions([FPermissionWrite, FPermissionRead], PermissionRequestResult, ExplainReason);
end;
procedure TForm1.PermissionRequestResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
begin
//PermissionRequestResult - это обработка ответа пользователя
if (Length(AGrantResults) = 2) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) then
begin
// Ура! Пользователь дал разрешение на оба наших запроса. Выставялем глобальные флаги (к примеру) которые сигнализируют что можно читать/писать карту памти
form1.CheckBox1.Visible:=True;
form1.Button1.Enabled:=False;
end
else begin
TDialogService.ShowMessage('Не возможно продолжить работу, требуемые разрешения не получены');
form1.CheckBox1.Visible:=false;
form1.Button1.Enabled:=true;
end;
end;
procedure TForm1.ExplainReason(Sender: TObject; const APermissions: TArray<string>; const APostRationaleProc: TProc);
begin
//И ExplainReason - если пользователь сдуру не дал разрешение,
// то вам нужно объяснить ему что без этого приложение работать не будет.
TDialogService.ShowMessage('Приложению нужен доступ к карте памяти для таких то целей, иначе приложение не сможет работать. Зайдите в настроки Андроид и дайте разрешение на доступ',
procedure(const AResult: TModalResult)
begin
APostRationaleProc;
form1.CheckBox1.Visible:=false;
form1.Button1.Enabled:=true;
end)
end;
end.
и все работает, но в телефоне я посмотрел права у программы, и там только доступ к медиафайлам.
Вопрос
Letter
Написал программу на delphi 10.4 под андроид, в программе есть запрос на доступ к файлам чтения и записи, вот такой:
и все работает, но в телефоне я посмотрел права у программы, и там только доступ к медиафайлам.
Подскажите как сделать ко всем файлам доступ?
Ссылка на комментарий
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.