Всем привет, вот и я решил внести свою лепту в жизнь форума и сегодня мы разберемся с разрешениями на Delphi Rio под Андроид.
Для примера мы будем использовать разрешения на чтение и запись с памяти устройства, для начала в нашем проекте выставим в Delphi>Project>Application>Uses Permissions галочки на Read External Storage и Write External Storage.
в uses проекта добавьте следующее
uses
System.Permissions,
Androidapi.Jni.Os,
Androidapi.Helpers,
далее создадим переменные
var
Form: TForm;
....
FPermissionWrite: string;
FPermissionRead: string;
в Form.Create добавим следующий код
procedure TForm.FormCreate(Sender: TObject);
begin
FPermissionWrite := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); //Значение на запись
FPermissionRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); //Значение на чтение
end;
и теперь сам не посредственно запрос на подтверждение наших прав
procedure TForm.Button1Click(Sender: TObject);
begin
PermissionsService.RequestPermissions
([FPermissionWrite, FPermissionRead], nil);
end;
//это вызовет окно с запросом разрешения прав
ну и для проверки бросим на форму TMemo и пару TButton , в них реализуем сохранение и чтение из файла с памяти устройства
procedure TForm.Button1Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetSharedDocumentsPath,
'test.txt'));
end;
procedure TForm.Button2Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetSharedDocumentsPath,
'test.txt'));
end;
P.S. Напоминаю что для работы TPath нам понадобится подключить в Uses
uses
System.system.ioutils;
Надеюсь материал будет полезен!
video_2019-02-08_00-11-36.mp4
Permissions.zip