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

Игорь Маринин

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

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

  • Посещение

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

    2

Весь контент Игорь Маринин

  1. Игорь Маринин

    Canvas.TextToPath

    подскажите, что за параметр RectF? например: myRectf:= RectF(100, 100, bmp.width - 100, bmp.height - 100); bmp.Canvas.FillText(myRectf, 'текст', false, 1, [], TTextAlign.Center, TTextAlign.Center); выводит всё правильно с учётом Rectf. тут же хочу сделать обводку текста: bmp.Canvas.TextToPath(path, myRectf, 'текст', false, TTextAlign.Center, TTextAlign.Center); bmp.Canvas.DrawPath(path, 1); и нифига, контур где-то в стороне, как буд-то не учитывает RectF, так как после: Path.Translate(100, 100); bmp.Canvas.DrawPath(path, AOpacity); рисует контур уже четко вокруг текста. я полагал, что должно выводить сразу по центру прямоугольника заданного в rectf а этот же код на андроиде вообще черти шо: что так где-то в стороне, что после translate то же в стороне.
  2. Intent := TJIntent.JavaClass.init; Intent.setAction(StringToJString('android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION')); TAndroidHelper.Activity.startActivity(Intent); открывает форму установки прав, где есть и моё приложение. но если добавить: Intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); то intent.resolveActivity(TAndroidHelper.Context.getPackageManager) возвращает NIL. хотелось бы, что бы сразу для моего приложения был запрос прав. апи 30. андроид 13. в манифесте указано <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> попробовал ещё PermissionsService.RequestPermissions(['MANAGE_ALL_FILES_ACCESS_PERMISSION'], ... вообще никакой реакции..
  3. вообщем по умолчанию, доступ к памяти запрещен: TJEnvironment.JavaClass.isExternalStorageManager возвращает False Intent.setAction(StringToJString('android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION')); intent.resolveActivity(TAndroidHelper.Context.getPackageManager) возвращает NIL, (no activity found to handle Intent) если вызвать при этом Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_APPLICATION_DETAILS_SETTINGS); то общие настройки приложения открываются нормально. в настройках доступа к памяти есть три пункта. если выбрать просто "разрешить", то if Androidapi.JNI.Support.TJcontent_ContextCompat.JavaClass.checkSelfPermission(TAndroidHelper.Context, TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE) возвращает TJPackageManager.JavaClass.PERMISSION_GRANTED, но при этом приложение видит только стандартные расширения файлов. если выбрать в правах доступа к памяти пункт "разрешить в любом режиме", тогда уже приложению доступны все файлы. почему активити 'android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION' отсутствует пока не пойму. на устройстве андроид 11-й. и проверку наверное делать не на READ_EXTERNAL_STORAGE а на MANAGE_EXTERNAL_STORAGE, но в 11.3 его нет.
  4. нашел такое, буду пробовать: Jcontent_ContextCompatClass = interface(JObjectClass) ['{DBBBF89C-A4F3-4A4C-A725-4B2FF89151B5}'] {class} function checkSelfPermission(context: JContext; string_: JString): Integer; cdecl; Jcontent_PermissionCheckerClass = interface(JObjectClass) ['{4627A63C-3386-4ABA-83DD-08BAA19760C2}'] {class} function checkPermission(context: JContext; string_: JString; i: Integer; i1: Integer; string_1: JString): Integer; cdecl; {class} function checkSelfPermission(context: JContext; string_: JString): Integer; cdecl; спасибо! удачи!!!
  5. да вроде бы у меня последняя 11.3 версия дельфи. вообще буду разбираться, есть над чем подумать. спасибо!
  6. спасибо! Androidapi.JNI.Support.Compat ну у меня в дельфи такого нет.. буду думать... насчет моего кода понял. разрешений точно нет, пока вручную не включишь. а вот эта проверка: if (TJEnvironment.JavaClass.isExternalStorageManager = false) разве не аналогична if TJContextCompat.JavaClass.checkSelfPermission(TAndroidHelper.Context, JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE)) <> TJPackageManager.JavaClass.PERMISSION_GRANTED буду искать ошибку. спасибо!
  7. а такой код вообще не вызывает никакого диалога на 13 андроиде: if (TJBuild_VERSION.JavaClass.SDK_INT >= 30) then if (TJEnvironment.JavaClass.isExternalStorageManager = false) then begin Intent := TJIntent.Create; Intent.setAction(StringToJString('android.settings.MANAGE_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;
  8. я понял, спасибо! спрашивал потому, что у меня в Androidapi.JNI.Support нет TJContextCompat ну и ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION то же нет нигде. но эту строковую константу я то могу заменить как писал выше. у меня 11.3, странно..
  9. спасибо! у вас 11.3 ? не могли бы уточнить, где описан TJContextCompat? а так же ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION ? Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); можно заменить на Intent.setAction(StringToJString('android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION')); ?
  10. вообщем установка targetSdkVersion в 29 возвращает доступ ко всем файлам. гугл здесь пишет, что достаточно MANAGE_EXTERNAL_STORAGE объявить, но нифига с targetSdk выше 29 не работает. а насчет опции "разрешить чтение памяти в любом режиме" в разрешениях доступа к файлам так и не понял. в некоторых прогах, типа x-plorer, заходишь в права и там три варианта выбора включая этот. как оно у меня раньше было ума не приложу. но при выборе искало все файлы при sdk 32. ну пока придется 29 апи писать. на гитхабе ещё какой то код нашел, но вываливается с ошибкой заколебали вообщем, постоянно что то придумывают с этой безопасностью. костыли какие то приходится придумывать..
  11. что-то в конец запутался. в настройках проэкта в правах включено read external storage. в манифест ещё добавил: android:requestLegacyExternalStorage="true" в проге запрашиваю права: PermissionsService.RequestPermissions( [ JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE), JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE), ], даю разрешение в системе на доступ. далее в проге, через : TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.STORAGE_SERVICE); LVolumes := LStorageManager.getStorageVolumes; получаю UUID флешки нормально. сканирую папки на наличие определенных файлов. и вот тут самое интересное, что система при поиске возвращает файлы только стандартных расширений, типа *.txt. *.mp3 а других файлов как буд-то нет. уже и по старинке через findFirst искал - то же самое. был заметил, что в системе в разрешениях доступа файлов у меня было три пункта и если выбрать "разрешить чтение памяти в любом режиме" то о чудо все файлы при поиске находились. если просто "разрешить во время выполнения" то фиг, только стандартные расширения. как-то обходился этим, но сейчас не пойму: где что менял при сборке, или система обновилась, но теперь этого пункта в системе нет. только два пункта. может есть у кого какие мысли, как всё же добиться что бы при поиске прога получала все имеющиеся файлы ? или если это где-то в сборке влияет на наличие пункта ""разрешить чтение памяти в любом режиме"" уже и на старом api собирал и в деплой и стор конфигурации: нет этого пункта в разрешениях и всё.. помогите плиз, а то уже голова кипит..
  12. что то на FMX уже нет такого свойства fonts, только у VCL. может куда запихнули? что-то не могу найти.
  13. в базе плеера собрано более 120 000 караоке песен!- миди караоке,- караоке с бэк вокалом с дисков: LG, Samsung, BBK- зарубежное CDG караоке- азиатское караоке (Узбекистан, Таджикистан, Кыргызстан, ..)- профессиональное минусовое MP3 (EMP) караокебаза постоянно пополняется, имеются все российские музыкальные новинки в профессиональном EMP формате. https://play.google.com/store/apps/details?id=com.encore.EnCore
  14. о, на 10.4 удалось запустить.. буду тестить, спасибо!
  15. Имеется ли возможность рисовать поверх кадра? или, например, на видео фоне расположить элементы интерфейса?
  16. установил первую попавшуюся ось, в папке bin нет ниодной утилиты (LSCPU, LSHW, LSPCI, LSSCSI, DMIDECODE)
  17. Игорь Маринин

    данные о железе

    привет! как можно программно узнать данные железа ?
  18. опять поломали кнопки пульта в 10.4
  19. поделитесь пожалуйста пустым проектом, готовым к публикации для TV устройств. что-то никак не получается опубликовать, сейчас отклонили с такими ошибками: APK:8 No Now Playing notification [card]" Your App does not contain a “Now Playing” notification [card] for when the user has selected the HOME button within the app. Please refer to our Displaying a Now Playing Card documentation for more details. APK:8 Play/Pause key event is not respected during playback Your media apps that play video or music content must respect the play/pause key during playback. Please refer to our Media Play/Pause documentation and Update the Playback State documentation for details. Missing DPad functionality Your app requires user interaction for menus or app navigation. Please make sure that all menus and app navigation are fully functional using a DPad. Please refer to our DPAD Control and Hardware Declaration documentation. ну и баннер не прилепил No full-size app banner Your app does not contain a full-size app banner or is it not visible in the launcher. We are targeting 1080P, which we consider xhdpi. Apps should include the banner in the xhdpi (320 dpi) drawables folder with a size of (320px × 180px). Please refer to our Home Screen Banner and UI Patterns documentation. The title should help users identify apps in the launcher. Please refer to our Visual Design and User Interaction documentation for more information. был бы очень благодарен за рабочий пустой костяк с манифестом.
  20. то же застопорился на этом. если есть у кого решение или мысли поделитесь плиз..
  21. изменение theme не помогает. полоска отрисовывается всегда белая. удалил даже StyleBook и без него так же. при android:targetSdkVersion="24" ещё нормально, при 25 уже такая фигня. когда динамика на форме, видно что и в этой полоске часть формы отрисовывается . при borderstyle = none - эту полоску занимаем форма и вроде бы всё работает терпимо.. вообщем где то проблема с шапкой формы.
  22. решил для теста опубликовать на google.play. в настройках выбрал SDK API android-26 но при загрузке apk заматюкались, что "targetSdkVersion" должна быть не ниже 26. полез в манифест и изменил android:targetSdkVersion="%targetSdkVersion%" на "26" до изменения: после: тоесть мое приложение как-то закрашивает статусную строку телефона, один заряд батареи только видно. в какую сторону копать?
  23. Женя, спасибо! я пока в эту хрень попробовал добавить голосовой движок: на стрелку вправо запустил проигрывание песни, на кнопки что дают "0" запускаю голосовой ввод. сегодня, на день пограничника, потестил, вроде бы всё удобно - напелись наславу. вообще этот mibox3 очень порадовал, шустрый... мне кажется на этом рынке большую нишу отхватит.
×
×
  • Создать...