x11

Пользователи
  • Публикаций

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

  • Посещение

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

    3

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

  1. Delete Android Service

    Заметил, что после удаления библиотеки-сервиса всё равно в host-приложении остаётся мусор.
  2. Удалил полностью всё, что связано с библиотекой сервиса. Создал заново. Теперь работает. Но всё же было так же, как и в первый раз.
  3. Всё делаю, как в примере. Но в итоге при нажатии на кнопку старта сервиса приложение падает. Проект приложил к письму. Может кто сможет найти проблему, что не так? Спасибо. FMXService.rar
  4. В стандартном примере "NotificationServiceDemo" в приложении и в сервисе два TNotificationCenter. Не могу понять, как они связаны друг с другом? 1. Сервис выполняет отправку нотификации у себя в процедуре "procedure TNotificationServiceDM.LaunchNotification;" 2. Появляется вверху уведомление. 3. Я по нему делаю тап. 4. В главном приложении выполняется приём сообщения. Но связи в исходниках я не вижу. Кто-то может пояснить чуть подробнее?
  5. Как не работает, а как же примеры из поставки Delphi, например, AndroidNotificationServiceDemo и AndroidBeaconServiceDemo.
  6. Прошу помощи или хотя бы совета. Кто-то уже пытался создать службу, которая может перехватывать звонки входящие и исходящие? Пример для обычного приложения есть с таким кодом TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)); if Assigned(PhoneDialerService) then PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged; Плюс пытаюсь всё это скрестить с NotificationCenter, но служба при запуске зависает и падает.
  7. Получается, что если нужно сделать Vibro или Toast, то нужно отправить что-то своему host-приложению, а оно уже это сделает? Предварительно как-то проверив, запущено ли оно и, если нужно, то запустить как-то.
  8. Экспериментировал с сервисами. После переименования проекта библиотеки сервиса удалил и снова хочу добавить к host-проекту библиотеку-service. На первом шаге выбираю "Искать автоматически". На втором выбираю папку, где живет проект-библиотека, но среда ругается и выдает старое имя. Но я не могу найти, где именно среда находит это старое имя.
  9. плохо А как же тогда реализовать подобную идею? Обычную программу создавать и заставлять её работать в фоне с помощью танца с бубном?
  10. вот полный код 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.
  11. Да, теперь получилось.
  12. Не запускается служба

    Использую стандартный пример из папки 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.
  13. Как я мог собрать неправильно? Я просто построил библиотеку (Build), потом сам host-проект, и нажал кнопку Запустить без отладки.
  14. Проблема с Android Service

    Нет, у меня файл Androidapi.JNI.Toast.pas
  15. Вопрос по правам. Нужно ли какие-то права указывать именно для библиотеки сервиса? Или достаточно того, что они есть у приложения-хозяина?
  16. HTC One Max, Androшв 5.0.2, стандартная оболочка HTC Sense 6.0. Lenovo S1, Android 6.0, стандартная оболочка (не знаю, как называется). Могу ещё проверить на стареньком Samsung Galaxy S2 (Android 4.4.2).
  17. Проблема с Android Service

    ага, я уже немного исследовал примеры у меня даже стандартный пример из коробки не работает http://fire-monkey.ru/topic/4711-не-запускается-служба/
  18. Проблема с Android Service

    Кстати, можно написать просто TLocalServiceConnection.StartService('ServiceName'); т.е. без объявления Fservice := TLocalServiceConnection.Create;
  19. Проблема с Android Service

    Посмотрел видео. 1. Те. получается, что D 10+ позволяют создавать службы для андроида без дополнительных java файлов? 2. Можно ли обходится без HOST-приложения? Если да, то как запустить сервис? 3. Присоединяюсь к вопросу fsdb: нужны ли какие-тор танцы с бубном, чтобы сервис автоматически запускался при старте ОС или он будет, как в винде, запускаться автоматически без лишних танцев? 4. Разрешено ли сервису использовать Toast? Спасибо. Видео описано в этой справке http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_Android_Services#Creating_an_Android_Service
  20. В первую очередь нужно проверить, видит ли утилита 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
  21. Delphi Tokyo не видит устройство. Нажимаю Refresh там, где Target в менеджере проекта, появляется сообщение: Что не так? Что нужно доустановить?
  22. В общем, я: 1. Скопировал стили в папку проекта в styles. 2. Открыл файл *.dproj и заменил там старый путь к стилям на новый, чтобы получилось такое: "<RcItem Include="styles\Android\AndroidCopperDark.style">"
  23. У меня есть проект на Delphi Berlin (мультиплатформенное приложение), где используются дополнительные стили. Но как я их вставил в проект не могу понять. В проекте нет StyleBook, но я вижу справа в менеджере проекта эти стили. Их что, нужно каждый отдельный через Deploymet добавлять в проект? Я не помню, как в старом проекте добавлял.