July 16, 2025Jul 16 При вызове процедуры результат 'Не удалось сохранить настройки'. Вроде разрешения стоят, что ещё не так может быть.procedure TFDB.SaveParams; begin TfgPermissionService.RequestPermissionsAsync(['android.permission.WRITE_EXTERNAL_STORAGE'], procedure(const APermissionInfo: TArray<TfgPermissionInfo>) var FIniFile: TINIFile; begin case APermissionInfo[0].CheckResult of TPermissionCheckResult.Granted: begin FIniFile := TINIFile.Create(GetExternalFilesDir+PathDelim+'conf.ini'); ... TfgToast.Show('Сохранено', TfgToastDuration.Long); FIniFile.UpdateFile; FIniFile.Free; end else TfgToast.Show('Не удалось сохранить настройки', TfgToastDuration.Long); end; end); end;
July 17, 2025Jul 17 Делал всегда просто так - procedure TfOnBoarding.SaveSettings;var Ini: TIniFile; FileName: string;begin FileName := TPath.Combine(TPath.GetDocumentsPath, 'settings.ini'); Ini := TIniFile.Create(FileName); try Ini.WriteBool('Data', 'RunOnBoarding', fMain.fgSwitchOnBoard.isChecked); finally Ini.Free; end;end;
July 18, 2025Jul 18 Author Вопрос решил:Я прочитал что с версии андроид 11+ (апи30+) - write_external_storage больше не работает как в старых версиях. т.е происходит отказ потому что разрешение технически бесполезно. если речь о сохранении в приватную папку то рут не нужен и значит разрешения тоже, работает с 6 андроида. Для публичные папок таких как Download, DCIM, Document до 10 версии была проверка разрешения на write_external_storage, т.е можно было писать при условии true, а в 11+ уже нельзя напрямую. Проверка в данном случае на write_external_storage будет только мешать.
Create an account or sign in to comment