Перейти к содержанию
Fire Monkey от А до Я

OnePeople

Пользователи
  • Постов

    357
  • Зарегистрирован

  • Посещение

  • Победитель дней

    64

OnePeople стал победителем дня 26 апреля

OnePeople имел наиболее популярный контент!

6 Подписчиков

Посетители профиля

17 130 просмотров профиля
  1. Вообще для 14 андроида не знаю, но для 15 описано новое поведение служб dataSync https://developer.android.com/develop/background-work/services/fgs/timeout?hl=ru И все время советуют перейти на WorkManager
  2. А в манифесте объявлено разрешение для службы "android.permission.FOREGROUND_SERVICE_DATA_SYNC"?
  3. OnePeople

    onPause

    Как переопределить метод Android приложения onPause?
  4. Ручками надо транслировать API, причем это androidx поэтому вам необходимо добавить в проект библиотеку androidx.work
  5. Может у вас конфликт с предыдущей версией, удалите старую версию и попробуйте установить заново?
  6. Да нет же. Для мобильных приложений есть библиотека alcinoe. Скоро там будет быстрый listbox и вообще будет ок. В исходниках вы можете посмотреть примеры реализаций множества api android, в том числе и запрос разрешений. Все будет работать очень быстро, красиво, и как рекомендует гугл. Также посмотрите на kastree там тоже много чего есть, вообще сейчас с андроид трудностей вообще у Делфи не каких, а то что встроенные компоненты Делфи глючат, то зачем их вообще использовать, если вам не нужна мультиплатформа. Любое апи переносится на Делфи за пару минут. Тут больше вопросов к самому андроида и их меняющемуся апи от версии к версии андроид, androidx библиотеки должны решать эти проблемы, но не всегда у них это получается.
  7. Так вы делайте не через методы delphi, а через методы android и проблем не будет.
  8. PermissionsService.RequestPermissions(AppPermissions); Да оно и не будет открываться на андроид 13 Вам ничего не мешает добавить описание этих переменных.
  9. Думаю тут именно нужно сохранять свойства объектов отдельно и использовать json. Допустим у вас в layout находятся нужные вам объекты, вы проходитесь по ним циклом и для объектов tcontrol записываете расположение, дальше уже по типу объекта нужные вам данные, а при загрузке этого файла также через цикл загружаете по данным, и свойствам, допустим можете использовать tagString = кругприм и тогда присваивать ему в onClick нужный метод.
  10. Первое про разрешения и деплоймент почитайте на сайте embarcadero. Второе вот в андроид точно в ини файл писать не стоит, особенно если какая нибудь настройка записывается при действии или таймере, если идёт запись настройки и случиться сбой и приложение экстренно закроется весь файл настроек сломается, используйте настройки андроид shared preference.
  11. Не делал не знаю, но с того что вы описываете, вам нужно ввести пароль для хранилища keystore.keystore т.е. когда вы увидите Enter password for store 'keystore.keystore' вам просто нужно ввести его и нажать enter, В данном случае у вас вводимые символы просто не отображаются, сделано так специально.
  12. Дело не в среде скорее всего, а в версии андроид, вам if TJBuild_VERSION.JavaClass.SDK_INT >= 30 then begin if TJEnvironment.JavaClass.isExternalStorageManager = false then begin Intent := TJIntent.Create; Intent:= TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); if intent.resolveActivity(TAndroidHelper.Context.getPackageManager) <> nil then TAndroidHelper.Context.startActivity(Intent); end; end; if TJBuild_VERSION.JavaClass.SDK_INT <= 29 then begin FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); AppPermissions := AppPermissions + [FPermissionReadExternalStorage] + [FPermissionWriteExternalStorage]; end;
  13. Проверяйте разрешения на доступ к файловой системе
×
×
  • Создать...