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

x11

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

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

  • Посещение

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

    13

Весь контент x11

  1. плохо А как же тогда реализовать подобную идею? Обычную программу создавать и заставлять её работать в фоне с помощью танца с бубном?
  2. вот полный код TDataModule сервиса unit uDMService; interface uses System.SysUtils, System.Classes, System.Android.Service, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Os, FMX.PhoneDialer, FMX.Platform, System.Notification; type TDM = class(TAndroidService) NotificationCenter1: TNotificationCenter; procedure AndroidServiceCreate(Sender: TObject); function AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; private PhoneDialerService: IFMXPhoneDialerService; procedure MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); procedure LaunchNotification(const AlertBody: String); public { Public declarations } end; var DM: TDM; implementation {%CLASSGROUP 'FMX.Controls.TControl'} {$R *.dfm} uses Androidapi.JNI.App, System.DateUtils; { TDM } procedure TDM.AndroidServiceCreate(Sender: TObject); begin LaunchNotification('AndroidServiceCreate'); TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)); if Assigned(PhoneDialerService) then begin LaunchNotification('PhoneDialerService'); PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged; end; end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin LaunchNotification('AndroidServiceStartCommand'); JavaService.stopSelf; result := TJService.JavaClass.START_STICKY; // держать сервис запущенным end; procedure TDM.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState); var outText: String; Begin case ACallState of TCallState.None: outText := 'No calls'; TCallState.Connected: outText := 'Connected'; TCallState.Incoming: outText := 'Incoming call'; TCallState.Dialing: outText := 'Dialing'; TCallState.Disconnected: outText := 'Disconnected'; end; LaunchNotification(ACallID); end; procedure TDM.LaunchNotification(const AlertBody: String); var MyNotification: TNotification; begin MyNotification := NotificationCenter1.CreateNotification; try MyNotification.Name := 'ServiceNotification'; MyNotification.Title := 'Android Service Notification'; MyNotification.AlertBody := AlertBody; MyNotification.FireDate := IncSecond(Now, 3); NotificationCenter1.ScheduleNotification(MyNotification); finally MyNotification.Free; end; end; end.
  3. Прошу помощи или хотя бы совета. Кто-то уже пытался создать службу, которая может перехватывать звонки входящие и исходящие? Пример для обычного приложения есть с таким кодом TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)); if Assigned(PhoneDialerService) then PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged; Плюс пытаюсь всё это скрестить с NotificationCenter, но служба при запуске зависает и падает.
  4. Экспериментировал с сервисами. После переименования проекта библиотеки сервиса удалил и снова хочу добавить к host-проекту библиотеку-service. На первом шаге выбираю "Искать автоматически". На втором выбираю папку, где живет проект-библиотека, но среда ругается и выдает старое имя. Но я не могу найти, где именно среда находит это старое имя.
  5. Как я мог собрать неправильно? Я просто построил библиотеку (Build), потом сам host-проект, и нажал кнопку Запустить без отладки.
  6. Вопрос по правам. Нужно ли какие-то права указывать именно для библиотеки сервиса? Или достаточно того, что они есть у приложения-хозяина? Скомпилировал библиотеку и приложение BeaconServiceApp - то же самое - нажимаю кнопку и ничего не происходит. Плохо, что TLocalServiceConnection.StartService() не возвращает никакого результата
  7. HTC One Max, Androшв 5.0.2, стандартная оболочка HTC Sense 6.0. Lenovo S1, Android 6.0, стандартная оболочка (не знаю, как называется). Могу ещё проверить на стареньком Samsung Galaxy S2 (Android 4.4.2).
  8. ага, я уже немного исследовал примеры у меня даже стандартный пример из коробки не работает http://fire-monkey.ru/topic/4711-не-запускается-служба/
  9. Использую стандартный пример из папки C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidNotificationServiceDemo\NotificationService Delphi Tokyo. Компилируется и запускается на устройстве. Нажимаю кнопку Start service, но ничего не происходит. Т.е. совсем ничего: ни ошибок, ни падений приложения, никаких сообщений. В какую строну копать? И вообще, как проверить, работает ли мой сервис? Я от крыл в настройках андроида "Запущенные программы", но там нет даже моего приложения в списке, хотя приложение запущено. Пробовал на Андроид версий 5 и 6.
  10. Кстати, можно написать просто TLocalServiceConnection.StartService('ServiceName'); т.е. без объявления Fservice := TLocalServiceConnection.Create;
  11. Посмотрел видео. 1. Те. получается, что D 10+ позволяют создавать службы для андроида без дополнительных java файлов? 2. Можно ли обходится без HOST-приложения? Если да, то как запустить сервис? 3. Присоединяюсь к вопросу fsdb: нужны ли какие-тор танцы с бубном, чтобы сервис автоматически запускался при старте ОС или он будет, как в винде, запускаться автоматически без лишних танцев? 4. Разрешено ли сервису использовать Toast? Спасибо. Видео описано в этой справке http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_Android_Services#Creating_an_Android_Service
  12. В первую очередь нужно проверить, видит ли утилита adb.exe ваше устройство. в консоли CMD нужно зайти в папку "C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\platform-tools" И выполнить adb devices, появится строка: List of devices attached и под ней все подключенные смартфоны (устройства). Если там ничего не будет, то не установлены USB-драйверы, либо на устройстве не включен режим разработчика. Когда установите драйверы и перезапустите ПК, то adb может всё равно не увидеть устройство, тогда поможет создание файла adb_usb.ini и нужно будет прописать в нём ID устройства: http://digphone.ru/esli-android-adb-ne-vidit-smartfon/ После этого перезапустить ПК. Снова запустить в CMD: adb.exe devices после этого может появиться строка, говорящая о том, что устройство подключено, но не авторизовано, т.е. код устройства и unauthorized: Переподключите смартфон к компьютеру и на экране смартфона должно появиться окно авторизации, где нужно нажать ОК и, возможно, перед этим сперва поставить галочку "Всегда разрешать подключение с этого ПК". Снова выполните adb.exe devices и увидите, что вместо unauthorized, будет слово device. Вместо перезапуска ПК, можно перезапускать службу adb adb kill-server adb start-server
  13. Delphi Tokyo не видит устройство. Нажимаю Refresh там, где Target в менеджере проекта, появляется сообщение: Что не так? Что нужно доустановить?
  14. В общем, я: 1. Скопировал стили в папку проекта в styles. 2. Открыл файл *.dproj и заменил там старый путь к стилям на новый, чтобы получилось такое: "<RcItem Include="styles\Android\AndroidCopperDark.style">"
  15. x11

    OrangeUI

    В общем, скачал другим способом ссылка здесь
  16. Так в том-то и дело - зачем мне TCircle? И картинку я не добавляю в Deployment.
  17. x11

    OrangeUI

    Там появилась версия 1.74, но скачать не получается. У кого получилось скачать? Можете перевыложить?
  18. Странно, не помню я, чтобы вводил имена сталей. Справа нужно вводить? Спасибо, попробую.
  19. А кто заполняет колонку Identifier так правильно?
×
×
  • Создать...