-
Постов
828 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Активность репутации
-
x11 получил реакцию от Anatoliy в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi
How to Use Cameras in a FireMonkey 3D Application with Delphi
https://www.youtube.com/watch?v=bjflkb1GzaM
может кому пригодится
-
x11 получил реакцию от Alex7wrt в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi
How to Use Cameras in a FireMonkey 3D Application with Delphi
https://www.youtube.com/watch?v=bjflkb1GzaM
может кому пригодится
-
x11 получил реакцию от Евгений Корепов в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi
How to Use Cameras in a FireMonkey 3D Application with Delphi
https://www.youtube.com/watch?v=bjflkb1GzaM
может кому пригодится
-
x11 получил реакцию от Yarpda в Подключение к БД Firebird из Android
Библиотеку нужно не забыть добавить в Deployment (release и debug).
У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя.
В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей, жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена.
В проекте, в процедуре подключения к базе есть строка:
ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2'; ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0.
Не забудь добавить в USES модуль System.IOUtils.
Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится.
По крайне мере у меня не получилось.
Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес.
Собираем строку подключения:
UniConnectionFB.ConnectString := 'Provider Name=InterBase;' + 'Data Source=' + server +';' + 'Database=' + Database + ';' + 'Port=' + port +';' + 'User ID=' + Username +';' + 'Password=' + Password + ';'+ 'Client Library=' + ClientLibrary + ';' + 'Character Set='+ CharacterSet + ';' + 'Use Unicode=True;Login Prompt=False';
-
x11 отреагировална Равиль Зарипов (ZuBy) в Как сделать форму с компонентами под все разрешения?
нужно использовать лицензионную винду, иначе Align не будет работать
-
x11 получил реакцию от Barbanel в Подключение к БД Firebird из Android
Библиотеку нужно не забыть добавить в Deployment (release и debug).
У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя.
В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей, жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена.
В проекте, в процедуре подключения к базе есть строка:
ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2'; ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0.
Не забудь добавить в USES модуль System.IOUtils.
Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится.
По крайне мере у меня не получилось.
Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес.
Собираем строку подключения:
UniConnectionFB.ConnectString := 'Provider Name=InterBase;' + 'Data Source=' + server +';' + 'Database=' + Database + ';' + 'Port=' + port +';' + 'User ID=' + Username +';' + 'Password=' + Password + ';'+ 'Client Library=' + ClientLibrary + ';' + 'Character Set='+ CharacterSet + ';' + 'Use Unicode=True;Login Prompt=False';
-
x11 получил реакцию от AngryOwl в Ошибка при подключении к MySQL Windows
Я за UniDac!
Там безо всяких библиотек.
-
x11 получил реакцию от Rusland в Ориентация SDK на Android 8 и выше
Object Pascal Interface Files Of The Android 27 and Android 28 SDKs For Delphi 10.2 Tokyo
https://www.fmxexpress.com/object-pascal-interface-files-of-the-android-27-and-android-28-sdks-for-delphi-10-2-tokyo/
-
x11 получил реакцию от ENERGY в Ориентация SDK на Android 8 и выше
Object Pascal Interface Files Of The Android 27 and Android 28 SDKs For Delphi 10.2 Tokyo
https://www.fmxexpress.com/object-pascal-interface-files-of-the-android-27-and-android-28-sdks-for-delphi-10-2-tokyo/
-
x11 получил реакцию от Ingalime в Embarcadero.... Community Edition!
Настройка Delphi Community Edition для разработки под Android
https://www.youtube.com/watch?v=_DXtU_8QdVE
-
x11 получил реакцию от Mars M в Embarcadero.... Community Edition!
Настройка Delphi Community Edition для разработки под Android
https://www.youtube.com/watch?v=_DXtU_8QdVE
-
x11 получил реакцию от ENERGY в Ориентация SDK на Android 8 и выше
Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
Ориентация на Android 8 и выше
http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
-
x11 получил реакцию от Ingalime в Ориентация SDK на Android 8 и выше
С 1 августа 2018 года новые правила в Гугл плей.
https://developer.android.com/distribute/best-practices/develop/target-sdk
The following considerations apply to apps targeting Android 8.0 and higher versions of the platform:
(Следующие соображения применимы к приложениям, ориентированным на Android 8.0 и более поздние версии платформы:)
-
x11 отреагировална Fedor K в TNotificationCenter. Можно ли изменить иконку?
При работе с API конкретной платформы советую использовать именно справку самой платформы. Находим реализацию на родном языке и пытаемся повторить тоже самое через wrappers от Delphi.
1 - это идентификатор вашего сервиса отличный от 0 (см. подробнее Service | Android Developers), т.е. можете использовать любые положительные цифры. По сути и обычные уведомления тоже содержат такой идентификатор, но это практически редко используется.
-
x11 получил реакцию от Sergionn в Embarcadero.... Community Edition!
Если бы они это сделали сразу, т.е. чтобы FMX была бесплатно доступна, то сообщество Firemonkey было бы значительно обширнее.
Глядишь, и в ВУЗах бы изучали.
-
x11 отреагировална Равиль Зарипов (ZuBy) в Мобильное приложение для курьера
У меня в гите есть набор компонентов, там есть гамбургер, кнопка назад и FAB кнопка.
смотрите демки
-
x11 получил реакцию от Barbanel в Ориентация SDK на Android 8 и выше
Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
Ориентация на Android 8 и выше
http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
-
x11 получил реакцию от Ingalime в Ориентация SDK на Android 8 и выше
Надеюсь, что кому-нибудь пригодятся статьи о том, как сделать приложение с поддержкой новых версий Андроида:
Ориентация на Android 8 и выше
http://delphiworlds.com/2018/05/targeting-android-8-and-higher/
http://delphiworlds.com/2018/06/targeting-android-8-and-higher-continued/
-
x11 отреагировална Равиль Зарипов (ZuBy) в Мобильное приложение для курьера
Не используйте эффекты на мобилах, нигде и никогда, если планируете запускать приложение в массы.
эффекты дают артефакты
-
x11 отреагировална r@di0 в Специальные разрешения
Вы вообще пробовали приведенный код? Он не имеет отношения к WakeLock, а как раз добавляет приложение в WhiteList.
Если Вы хотите сделать "неубиваемое" приложение, то Вам не получится обойтись каким-то легким решением. Особенно если приложению необходимо использовать сеть. Почитайте про doze mode.
Можете ещё посмотреть эту статью: http://delphiworlds.com/2018/01/monitoring-location-updates-on-android/
Там предпринята попытка сделать подобное "неубиваемое" приложение.
-
x11 отреагировална mazayhin в Окно на переднем плане во время звонка
Как создавать это вью или как им созданным пользоваться?
Если создавать - то создаете разметку в xml, деплоете ее в layouts. Примеров в интернете можно кучу найти. Остальное - в другие папки.
В общем, получится во так.
Здесь задеплоено 3 файла - картинка res/drawable/myicon.png, res/drawable/border.xml - прямоугольник подложки и res/layouts/toast.xml - сам lauoyt.
toast.xml ("-- " - комментарии, удалить надо будет).
Текст, картинки и прочее можем сразу указать в разметке, и грузить автоматически. Но всегда сможем поменять в коде
border.xml
Думаю, тут все понятно. Примитив может быть любой.
И формируем тост:
//uses FMX.Helpers.Android, AndroidApi.Helpers, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Widget var Toast: JToast; InfObj: JObject; Inflater: JLayoutInflater; View: JView; Text: JTextView; begin InfObj := TAndroidHelper.Context.getSystemService (TJContext.JavaClass.LAYOUT_INFLATER_SERVICE); Inflater := TJLayoutInflater.Wrap((InfObj as ILocalObject).GetObjectID); View := TJView.JavaClass.init(TAndroidHelper.Context); View := Inflater.inflate(TAndroidHelper.Context.getResources() .getIdentifier(StringToJString('layout/toast'), StringToJString('layout'), TAndroidHelper.Context.getPackageName), nil); //Грузим из ресурсов. Второе значение всегда nil Text := TJTextView.Wrap ((View.findViewById(TAndroidHelper.Context.getResources() .getIdentifier(StringToJString('id/toastText'), StringToJString('id'), TAndroidHelper.Context.getPackageName)) as ILocalObject).GetObjectID); // Так ищем элементы разметки, если надо свои значения поставить. Так же могли и поменять картинку(id/toastImage), подложку и т.д. Text.setText(StrToJCharSequence('Привет, х11! Я нативный Toast!' + #13 + 'Сегодня пишем на Pascal')); //Устанавливаем свое значение. CallInUIThreadAndWaitFinishing( //В сервисе запускаем без этого, отключаем FMX.Helpers.Android - только его, GraphicsContentViewText к графике, которая ломает сервис, отношения не имеет. procedure begin Toast := TJToast.JavaClass.init(TAndroidHelper.Context); Toast.setView(View); // Своя вьюшка Toast.setDuration(TJToast.JavaClass.LENGTH_LONG); //Константа. Свое значение не пройдет Toast.Show; //Показываем end); end; Ну и все в принципе.
Сложного, считаю, 0.
А что не понятно, яндекс показывает, глаза разбегаются.
-
x11 отреагировална r@di0 в Специальные разрешения
Такое поведение на Андроиде с 5 версии.
function GetPowerManager: JPowerManager; var PowerServiceNative: JObject; begin PowerServiceNative := TAndroidHelper.Context.getSystemService (TJContext.JavaClass.POWER_SERVICE); if not Assigned(PowerServiceNative) then raise Exception.Create('Could not locate Power Service'); Result := TJPowerManager.Wrap((PowerServiceNative as ILocalObject) .GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Power Manager'); end; //Intent: JIntent; if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then begin pw := GetPowerManager; if Assigned(pw) then if not pw.isIgnoringBatteryOptimizations (StringToJString('ВАШ ПАКЕТ')) then begin Intent := TJIntent.Create; try Intent.setAction (TJSettings.JavaClass. ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); Intent.setData(TJnet_Uri.JavaClass.parse (StringToJString('package:ВАШ ПАКЕТ'))); TAndroidHelper.Context.startActivity(Intent); except on e: Exception do fgToast(e.Message, 3); end; end; end;
-
x11 получил реакцию от Tarik Live в Toast для Android Service
Это не вопрос. Просто подумал, что кому-нибудь может пригодится.
https://forums.embarcadero.com/thread.jspa?threadID=118465
Используем 2 файла: Androidapi.JNI.ToastForService.pas + FlyUtils.Android.PostRunnableAndTimer.pas.
Пример вызова:
Androidapi.JNI.ToastForService.PostToast('текст сообщения', LongToast); Проверил - работает.
Есть ещё третий параметр "UseLastToastObj", но я так и не понял, для чего он. Документации нет.
-
x11 получил реакцию от Rusland в Что невозможно сделать на Delphi для Android?
На моей памяти Delphi уже 10+ лет умирает.
Замкнутый круг: если все будут валить с Дельфи, то его и развивать не будут. Если будем продолжать, то и Дельфи будут развивать.
К сожалению, цена на среду заоблачна для простых фрилансеров.
А FMX вообще должна быть пока ещё бесплатна, как бета-версия.
-
x11 получил реакцию от Rusland в Что невозможно сделать на Delphi для Android?
На данный момент столкнулся с тем, что нет нижеописанных встроенных возможностей (из коробки, как говорится).
4. Назначить (изменить) иконку у TNotification.
5. Работать с Broadcast.
6. Показать на переднем плане временное окно из службы, типа Toast, но дольше и с картинкой.
7. Пролистывать картинки (нет слайдера).
8. Работать с адресной книгой, звонками, другими данными (TAddressBook) не подходит. Вернее, есть возможность, но нет примеров и описаний совсем. Я о таких вещах, как TJContactsContract_PhoneLookup, TJNet_URI, getContentResolver.query, JCursor, TJavaObjectArray. Спасибо тем, кто помогает переводить код с Java на Delphi.
9. Нельзя указать в настройках проекта, что приложение должно автоматически стартовать при перезагрузке смартфона.
10. Нельзя создавать 64-битные Андроид-приложения. А в Гугломаркете их уже 40%.
11. Нет списка, который бы можно было подключить к TDataSet с возможностью дозагрузки и автоматического уничтожения ненужных записей.