-
Постов
842 -
Зарегистрирован
-
Победитель дней
123
Сообщения, опубликованные Andrey Efimov
-
-
Обновлена серия статей на тему использования Uses Permissions.
- Uses Permissions: Теория
- Uses Permissions: Добавляем метод onRequestPermissionsResult в приложение (для Delphi 10.1/10.2)
- Uses Permissions: Практика (для Delphi 10.3)
Автор: Андрей Ефимов
-
Обратите внимание вот на эту заметку: Получаем информацию об устройстве (Device Information)
Касательно данной темы, в заметке учитываются такие нюансы: Android API > 17; Android API < 17; и устройства не позволяющие кастомизировать Device Name.
-
Добавлю к сообщению от krapotkin'а, пример можно найти в семплах студии: C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\User Interface\Forms
-
-
-
-
Используйте метод
-
Документация по студии. Например: Mobile Tutorial: Using Location Sensors (iOS and Android) в самом начале указано какие разрешения нужны для использования.
Документация по Android: Manifest.permission; Normal permissions; Dangerous permissions and permission groups
-
Поиск по форуму позволяет получить ответ на вашу просьбу. Например по слову "памяти".
-
Вот эти "Get started with TV apps" рекомендации выполнены? (обратите внимание, что требуется специальная запись в манифесте)
-
-
Например вот так.
в программе:
var LIntent: JIntent; begin LIntent := TJIntent.Create; LIntent.setClassName(TAndroidHelper.Context.getPackageName(), StringToJString('com.embarcadero.services.nameservice')); LIntent.putExtra(StringToJString('NameForValue'), StringToJString('Value')); TAndroidHelper.Activity.StartService(LIntent);
в сервисе:
function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; var Value: string; begin Value := JStringToString(Intent.getStringExtra(StringToJString('NameForValue'))); // дальше что-то делаем end;
-
5 часов назад, Равиль Зарипов (ZuBy) сказал:
1) Решение Андрея не полное, нет колбэка от выбранного действия. Неизвестно юзер разрешил или нет
Не обманывай людей . Это что: procedure onReceivePermissionsResult(const ASender: TObject; const AMessage: TMessage); ?
-
-
Вот так попробуйте:
uses Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNI.App; procedure TForm1.Button1Click(Sender: TObject); var PackageManager: JPackageManager; PackageName: JString; LastUpdateTime: Int64; begin PackageManager := TAndroidHelper.Activity.getPackageManager; PackageName := TAndroidHelper.Context.getPackageName; LastUpdateTime := PackageManager.getPackageInfo(PackageName, 0).lastUpdateTime; // firstInstallTime end;
p.s. А вообще, это вы должны были ещё в первом посте указать версию среды...
-
17 часов назад, Виталий Иванов сказал:
Вопрос к экспертам
Возникла необходимость и хотел спросить можно ли как-то сделать TlistViewItem прозрачным, а то получается что сам TlistView может быть прозрачным а его итем нет . Это как-то же делаться у TListBoxItem.
Заранее огромное спасибо.
Через стиль можно сделать, "itembackground.color" ставим Null. Ну и прозрачность у самого компонента включаем.
-
-
Такой проблемы не наблюдаю, но и не знаю как вы удаляете сервис.
Рекомендую ознакомиться с этим материалом Deleting an Android Service from an Application
-
-
Вот, попробуйте. Уведомление должно появиться через 8 секунд.
12 минуты назад, x11 сказал:Вопрос по правам. Нужно ли какие-то права указывать именно для библиотеки сервиса? Или достаточно того, что они есть у приложения-хозяина?
Нет, не нужно.
-
Какое устройство используете, какая оболочка установлена?
В Берлине такого бага не встречал, бывает в оболочках, которые над Андроидом нужно разрешить фоновую работу приложению.
В этом примере, у вас должно будет появиться уведомление, если появилось, значит сервис отработал.
-
5 часов назад, x11 сказал:
1. Те. получается, что D 10+ позволяют создавать службы для андроида без дополнительных java файлов?
Смотря какой сервис, в Делфи просто автоматизировали процесс как смогли. На самом деле, в итоге, создаются java файлы, потом всё превращается в либу и прикрепляется к основному приложению.
5 часов назад, x11 сказал:2. Можно ли обходится без HOST-приложения? Если да, то как запустить сервис?
Прям вообще без приложения - нет. (на сколько мне известно)
5 часов назад, x11 сказал:3. Присоединяюсь к вопросу fsdb: нужны ли какие-тор танцы с бубном, чтобы сервис автоматически запускался при старте ОС или он будет, как в винде, запускаться автоматически без лишних танцев?
Нужны и не малые, если хотите охватить максимум устройств, но такие танцы не зависят от языка.
Начать изучать можно с поиска по форуму. Ещё напомню, что на форуме есть раздел "Статьи и заметки".
5 часов назад, x11 сказал:4. Разрешено ли сервису использовать Toast?
В теории можно, но либа Ярослава для этого не подойдёт, т.к. в компоненте используются файлы студии, которые не работают в сервисах.
По поводу умирающего сервиса (после закрытия приложения). Да, есть такой косяк, появился с версии Berlin, в Seattle всё работало.
-
Для создания резинового интерфейса достаточно использования TLayout (или наследников/других подобных компонентов) и свойств Align, Margins, Paddings, Anchors у компонентов.
В Embarcadero позаботились о том, чтобы данная тема была рассмотрена в справке, вот вам несколько ссылок с примерами:
- Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android)
- Arranging FireMonkey Controls
- FireMonkey Layouts Strategies
Теперь по поводу View, данный функционал создавался в основном для того, чтобы разработчик мог делать разный дизайн для разных платформ и размеров экрана. Создавая View для Windows платформы вы можете быть уверены, что при запуске приложения на Windows платформе будет отображаться это View. Вы можете изменить весь дизайн приложения для Windows платформы, на остальных платформах будет отображаться Master View. В некоторых случаях это очень удобная фишка, например, если нужно сделать два разных дизайна для телефонов и планшетов.
Вот несколько ссылок про использование View:
- Using FireMonkey Views
- Adding Views to Your Multi-Device Project
- Adding a Customized View to the View Selector
И напоследок, общий гайд по дизайну: FireMonkey Application Design
-
13 часа назад, gelo1 сказал:
Здравствуйте Андрей.
Не совсем понял. Пришлите пожалуйста на мою почту или сюда скриншот или видеоролик того что происходит. Адрес в верхнем меню "О приложении".
СпасиБО. С Уважением. Олег.
Я вам лично ничего не писал. Вам написал GASCHE: http://fire-monkey.ru/topic/4655-подбор-и-расчёт-карданного-вала-v20/?do=findComment&comment=29373. Но изначально, он залил скриншот в архиве, т.к. на форуме принято выкладывать скриншоты прямо в сообщении и я являюсь модератором-администратором, то я скачал его архив, извлёк скриншот и залил в его сообщение (где оставил пометку об этом). Так что вам необходимо связаться с GASCHE (скриншот под спойлером в его сообщении)
Android 64
в Публикация приложения в Google Play
Опубликовано
Как и раньше, но теперь у них(других приложений) доступна версия 64-bit.
32-bit приложения не блочили. Разработчиков просто обязали в дополнение к 32 битной версии прикладывать 64 битную версию.
Полный отказ от 32 битных приложений был запланирован на Август 2021.