Мой код: следующим образом:
Код: Выделить всё
procedure TfrmMain.CopyDB(direction2download: Boolean);
var
f1, f2: String;
const
permRead = 'android.permission.READ_EXTERNAL_STORAGE';
permWrite = 'android.permission.WRITE_EXTERNAL_STORAGE';
begin
{$IFDEF ANDROID}
PermissionsService.RequestPermissions([permRead, permWrite],
procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray)
begin
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) then
begin
dmCC.FDConnection.Connected := False;
f1 := TPath.Combine(TPath.GetDocumentsPath, 'calorie_consumption.db');
f2 := TPath.Combine(TPath.GetSharedDocumentsPath, 'calorie_consumption.db');
if direction2download then
begin
TFile.Copy(f2, f1, True);
memSQLTest.Lines.Add(f2 + ' -> ' + f1);
end else
begin
TFile.Copy(f1, f2, True);
memSQLTest.Lines.Add(f1 + ' -> ' + f2);
end;
dmCC.FDConnection.Connected := True;
end else
begin
TDialogService.ShowMessage('Permission not granted!');
end;
end);
{$ENDIF}
end;
Мой AndroidManifest.xml:
Код: Выделить всё
Проект CC.apk вызвал класс исключения EFCreateError с сообщением ' Невозможно создать файл «/storage/emulated/0/Documents/калория_consumption.db». Разрешение отклонено».
Я испробовал все возможные варианты, включая компонент TMobilePermissions, но он не работает.
Может кто-нибудь поможет мне и укажет мне правильное направление?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ns-problem
Мобильная версия