Поиск сообщества

Показаны результаты для тегов 'service'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Native FGX
    • Новости
    • Обсуждения
    • Предложения
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума
    • Правила форума
    • Нарушения правил форума
    • Предложения об организации форума
    • Проблемы
    • Функции форума
  • Видеокурсы
    • Основная информация
    • Курсы
    • Предложения и голосования за новые курсы
    • Вопросы

Поиск результатов в...

Поиск результатов, которые...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Город


Интересы

Найдено: 21 результат

  1. На основе нескольких тем форума сделал службу перехвата звонков и номера телефона. http://fire-monkey.ru/topic/3878-статьякак-создать-простой-android-broadcast-receiver-how-to-implement-simplest-android-broadcast-receiver-in-delphi/ http://fire-monkey.ru/topic/2386-перехват-события-звонка/ http://fire-monkey.ru/topic/2972-использование-нативных-localbroadcastmanager-и-broadcastreceiver/ Покритикуйте пожалуйста. Уверен, что не всё правильно. Но что до ума не удалось довести, так это то, как правильно останавливать службу и закрывать приложение. Проект (для Токио) приложил теме. Заранее благодарен. BR2.rar
  2. x11

    Зависает при старте

    Приложение + служба. В службе установлен флаг перезапуска в StrartCommand^ result := TJService.JavaClass.START_STICKY; // rerun service if host app stops Проблема вот в чем. На экране главная форма хост-приложения. На смартфоне внизу нажимаю кнопку Назад. Приложение закрывается. Вижу в LogCat Андроида, что аварийно завершается служба. Андроид восстанавливает работу службы и запускает и службу и само приложение. Хотя Андроид не должен перезапускать host-приложение, а только службу. Т.е. вижу, что поле выхода приложение со службой работают. Когда с рабочего стала ланчера запсукаю host-приложение, то оно виснет при старте и даже событие OnCreate главной формы не срабатывает. Показывается стартовое окно (splash) и висит, пока Андроид не предложит закрыть или подождать. И так несколько раз приходится делать, пока приложение не запустится. Я в OnClose главной формы разные параметры прописывал для action, но толку нет. Хоть какой-нибудь костыль посоветуйте, пожалуйста. А когда нажимаю кнопку Домой на смартфоне, то приложение сворачивается и тогда запсу с рабочего стола ланчера происходит нормально, т.е. приложение просто всплывает. Может можно как-то при закрытии приложения не закрывать его, а сворачивать? Если я не запускаю службу, то приложение закрывается и потом запускается нормально с рабочего стола ланчера. Заранее благодарен.
  3. x11

    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", но я так и не понял, для чего он. Документации нет.
  4. Здравствуйте. Требуется программа на андроид с набором кнопок со следующем функционалом: 1. Кнопка1 - создать базу в test.sqlite (в том месте где доступ к нему есть только у самого приложения (имею ввиду если это не ROOT телефон, при рут и так всё понятно) 2. Кнопка2 - создать таблицу в базе test.sqlite с названием "TblTest01" (с разным набором полей на своё усмотрение) 3. Кнопка3 - создать таблицу в базе test.sqlite с названием "TblTest02" (с разным набором полей на своё усмотрение) 4. Кнопка4 - Добавить строку в таблицу "TblTest01" (любой набор данных на ваших усмотрение) 5. Кнопка5 - Удалить строку в таблице "TblTest01" (по любому ключу на ваше усмотрение) 6. Кнопка6 - Изменить строку в таблице "TblTest01" (по любому ключу и любое значение на ваше усмотрение) Приложение должно иметь фоновый сервис, который должен получать данные с сервера и добавлять их в базу test.sqlite в таблицу "TblTest02". При получение новый данных, сервис должен показать в "шторке" сообщение, по клику на которую открывается само приложение с визуальной частью. Т.е. если визуально приложение закрыто, выгружено, не запущено или запущено, фоновый процесс должен сам делать запросы к серверу и добавлять новые данные в базу, если они есть/поступили Приложение должно запускаться вместе с системой, после перезагрузки и т.д. Использовать только те компоненты что доступны в самой среде из коробки. Часть где делается запрос к серверу должен иметь timeout равный 20 секундам. Сервис должен грамотно делать запросы к серверу как положено в Андроид приложениях. Серверная часть мне не нужна, можете для теста сами эмулирвать эти процессы. ----- ЦЕНА: 2500р. СРОКИ: Не горит, но в целом где то дней 7 есть Перечисляю на QIWI, ЯД, Сбербанк, короче куда скажите.
  5. Из PlatformSDK (PlatformSDKs\android-sdk-windows\sources\android-23\android\support\v4\content\) портировал в Delphi класс TJLocalBroadcastManager. Это очень полезный класс, если вы не хотите рассылать сообщения по всей системе, а есть необходимость общаться только внутри приложения или между хост-приложением и сервисом. Во вложении сам класс, в своем приложении убедитесь, что в Target Platforms (Android) → Android → Libraries включена библиотека android-support-v4.dex.jar. Прилагаю пример, для изучения и использования в работе, который демонстрирует работу обычного BroadcastReceiver и LocalBroadcastReceiver. В примере демонстрируется работа сообщений в приложении и сервисе. Сначала делаем build проекта LBCRService, потом будет доступна возможность собрать LocalBCR. Собираю в Berlin 10.1, но на младших версиях тоже должно работать, по крайней мере в Seatlle. В реализации методов procedure RegisterReceiver(); procedure UnRegisterReceiver(); необходимо снять комментарий с соответствующих строчек, в зависимости от того, какой тип ресивера вы хотите использовать. Androidapi.JNI.LocalBroadcastManager.pas.zip LocalBroadCastReceiver.zip
  6. x11

    Работает ли служба

    Как проверить, работает ли моя служба? Т.е. перед запуском или остановкой хочется выполнить проверку. FService := TJIntent.Create; FService.setClassName(TAndroidHelper.Context.getPackageName, TAndroidHelper.StringToJString('com.embarcadero.services.pak1')); FService.setAction(StringToJString('StopService')); TAndroidHelper.Activity.startService(FService);
  7. x11

    Remove (delete) Android Service

    Заметил, что после удаления библиотеки-сервиса всё равно в host-приложении остаётся мусор.
  8. Прошу помощи или хотя бы совета. Кто-то уже пытался создать службу, которая может перехватывать звонки входящие и исходящие? Пример для обычного приложения есть с таким кодом TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)); if Assigned(PhoneDialerService) then PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged; Плюс пытаюсь всё это скрестить с NotificationCenter, но служба при запуске зависает и падает.
  9. Rusland

    NotificationCenter в сервисе

    Пытаюсь из сервиса выдать уведомление: procedure TAndroidServiceDM.SendNotify(AlertName,AlertBody:String); var Notification: TNotification; begin Notification := NotificationC.CreateNotification; try Notification.Name := AlertName; Notification.AlertBody := AlertBody; Notification.FireDate := Now; NotificationC.ScheduleNotification(Notification); finally Notification.DisposeOf; end; end; ... // пытаюсь вызвать SendNotify('Attention','Тревога'); Вроде не UI использую, но получаю ошибку Segmentation fault 11. Ошибка происходит в System.Android.Notification в строке 208-209 LaunchIntent := TAndroidHelper.Context.getPackageManager().getLaunchIntentForPackage(TAndroidHelper.Context.getPackageName()); AIntent.putExtra(TJNotificationInfo.JavaClass.EXTRA_ACTIVITY_CLASS_NAME, LaunchIntent.getComponent().getClassName()); Снова похоже на обращение к Activity (а может что-то другое). Есть решение как обойти эту проблему? PS. Delphi RX
  10. Экспериментировал с сервисами. После переименования проекта библиотеки сервиса удалил и снова хочу добавить к host-проекту библиотеку-service. На первом шаге выбираю "Искать автоматически". На втором выбираю папку, где живет проект-библиотека, но среда ругается и выдает старое имя. Но я не могу найти, где именно среда находит это старое имя.
  11. x11

    Не запускается служба

    Использую стандартный пример из папки 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.
  12. В приложении: procedure TForm7.Button1Click(Sender: TObject); var AIntent: JIntent; AServiceName: string; begin AIntent := TJIntent.Create; AServiceName := 'com.embarcadero.services.Service'; AIntent.setClassName( TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString( AServiceName ) ); AIntent.putExtra( TAndroidHelper.StringToJString( 'Code' ), 0 ); AIntent.putExtra( TAndroidHelper.StringToJString( 'Data' ), TAndroidHelper.StringToJString( 'DataString' ) ); TAndroidHelper.Activity.startService( AIntent ); end; В сервисе: procedure TDM.AndroidIntentServiceCreate(Sender: TObject); begin Toast( 'Create' ); end; procedure TDM.AndroidIntentServiceHandleIntent(const Sender: TObject; const AnIntent: JIntent); begin Toast( 'HandleIntent' ); end; Сообщение 'Create' показывается, а 'HandleIntent' нет. OnCreate срабатывает, но onHandleIntent не вызывается что бы я не делал. Может я что-то не так делаю?
  13. Провел небольшое исследование поведения таймера Posix в сервисе. Результаты не очень. Таймер ведет себя так же как и в приложении, главное отличие - не умирает окончательно, но рассчитывать на него не стоит. Перед экспериментом было отключено энергосбережение, экономия трафика во сне (телефон работал через wifi), т.е. созданы все условия для долгой и стабильной работы. 2017-02-24 23:22:51 - телефон ушел в сон. Таймер начал работать эпизодически, с провалами до получаса. 2017-02-25 07:24:58 - я проснулся и разблокировал телефон. Таймер опять нормально заработал. В следующей серии попробую протестировать сервис с AlarmManager, что то у меня подозрения что результаты будут не лучше. 2017-02-25 07:27:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 108 2017-02-25 07:26:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 107 2017-02-25 07:25:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 106 2017-02-25 07:24:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 105 2017-02-25 07:21:05 Posix-таймер в сервисе. Запрос раз в 60 сек. № 104 2017-02-25 07:14:00 Posix-таймер в сервисе. Запрос раз в 60 сек. № 103 2017-02-25 07:01:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 102 2017-02-25 06:46:33 Posix-таймер в сервисе. Запрос раз в 60 сек. № 101 2017-02-25 06:24:50 Posix-таймер в сервисе. Запрос раз в 60 сек. № 100 2017-02-25 06:13:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 99 2017-02-25 05:51:32 Posix-таймер в сервисе. Запрос раз в 60 сек. № 98 2017-02-25 05:30:07 Posix-таймер в сервисе. Запрос раз в 60 сек. № 97 2017-02-25 05:16:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 96 2017-02-25 05:07:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 95 2017-02-25 05:00:41 Posix-таймер в сервисе. Запрос раз в 60 сек. № 94 2017-02-25 04:41:01 Posix-таймер в сервисе. Запрос раз в 60 сек. № 93 2017-02-25 04:21:19 Posix-таймер в сервисе. Запрос раз в 60 сек. № 92 2017-02-25 04:00:40 Posix-таймер в сервисе. Запрос раз в 60 сек. № 91 2017-02-25 03:41:33 Posix-таймер в сервисе. Запрос раз в 60 сек. № 90 2017-02-25 03:16:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 89 2017-02-25 03:02:01 Posix-таймер в сервисе. Запрос раз в 60 сек. № 88 2017-02-25 02:44:54 Posix-таймер в сервисе. Запрос раз в 60 сек. № 87 2017-02-25 02:23:49 Posix-таймер в сервисе. Запрос раз в 60 сек. № 86 2017-02-25 02:10:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 85 2017-02-25 01:52:11 Posix-таймер в сервисе. Запрос раз в 60 сек. № 84 2017-02-25 01:32:57 Posix-таймер в сервисе. Запрос раз в 60 сек. № 83 2017-02-25 01:28:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 82 2017-02-25 01:27:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 81 2017-02-25 01:26:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 80 2017-02-25 01:25:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 79 2017-02-25 01:10:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 78 2017-02-25 01:00:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 77 2017-02-25 00:38:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 76 2017-02-25 00:19:22 Posix-таймер в сервисе. Запрос раз в 60 сек. № 75 2017-02-25 00:01:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 74 2017-02-24 23:51:15 Posix-таймер в сервисе. Запрос раз в 60 сек. № 73 2017-02-24 23:30:37 Posix-таймер в сервисе. Запрос раз в 60 сек. № 72 2017-02-24 23:22:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 71 2017-02-24 23:21:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 70 2017-02-24 23:20:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 69 2017-02-24 23:19:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 68 2017-02-24 23:18:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 67 2017-02-24 23:17:52 Posix-таймер в сервисе. Запрос раз в 60 сек. № 66 2017-02-24 23:16:52 Posix-таймер в сервисе. Запрос раз в 60 сек. № 65
  14. tromani

    BroadcastReceiver в сервисе

    Собственно сабж, перенес из основной программы в сервис ничего не работает может чтото не так делаю подскажите смысл в том чтоб в сервисе обрабатывать входящие смс unit utMainsmsResolver; interface uses System.SysUtils, System.Classes, System.Android.Service, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Os, Androidapi.JNI.App, CSBroadcastReceiver, Androidapi.JNI.JavaTypes, IdHTTP, IdCoderMIME,RR.HTTPwider, Androidapi.Jni, Androidapi.Helpers, Androidapi.JNI.Provider, Androidapi.JNI.Net, Androidapi.JNIBridge, Androidapi.JNI.Telephony; type TDM = class(TAndroidIntentService) function AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; procedure AndroidServiceDestroy(Sender: TObject); private { Private declarations } public { Public declarations } procedure CreateBroadcastReceiver; procedure BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); procedure CheckSmsInState(Context: JContext; Intent: JIntent); end; var DM: TDM; BroadcastReceiver: TCSBroadcastReceiver; implementation {%CLASSGROUP 'FMX.Controls.TControl'} {$R *.dfm} procedure TDM.CreateBroadcastReceiver; begin if not Assigned(BroadcastReceiver) then begin BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.provider.Telephony.SMS_RECEIVED',-1); end; end; procedure TDM.BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); begin CheckSmsInState(csContext, csIntent); end; procedure TDM.CheckSmsInState(Context: JContext; Intent: JIntent); begin // чтото делаем с смс end; procedure TDM.AndroidServiceDestroy(Sender: TObject); begin if Assigned(BroadcastReceiver) then FreeAndNil(BroadcastReceiver); end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin CreateBroadcastReceiver; Result:=TJService.JavaClass.START_STICKY; //CreateBroadcastReceiver; end; пробовал метод CreateBroadcastReceiver вставлять и до и после start_sticky и в onCreate результат один ничего не происходит версия IDE - berlin повторюсь если в коде основной программы то все работает на ура
  15. Приветствую. Нужно в определенное время отправлять несколько смс сообщений, к примеру это может быть через час, день, неделю. Подскажите как лучше это реализовать. В виде Android фонового сервиса или при помощи AlarmManager? Я где-то пару месяцев назад уже пытался сделать фоновой сервис для другой задачи, но у меня ничего не получилось, программа закрывалась системой, в общем пришлось забросить. Возможно есть рабочий код на эту тему? Для Java готовых решений полно, а вот для Delphi пока нет стандартного примера сервиса (основы), который бы работал всегда в Android системе. Почему то сообщество медленно развивается. Заранее спасибо за советы, очень жду мнения опытных программистов.
  16. Привет. Есть код, который прекрасно работает в активити, но если вызывать его из сервиса, вылетает ошибка - Activity not found, maybe you are in a service , - т.к. нельзя использовать SharedActivityContext в сервисе. На StackOverflow есть несколько подобных вопросов, но все они для Явы. function GetConnectivityManager: JConnectivityManager; var ConnectivityServiceNative: JObject; begin ConnectivityServiceNative := SharedActivityContext.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); if not Assigned(ConnectivityServiceNative) then raise Exception.Create('Could not locate Connectivity Service'); Result := TJConnectivityManager.Wrap( (ConnectivityServiceNative as ILocalObject).GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Connectivity Manager'); end; Наверняка кто-то уже сталкивался с этой проблемой, подскажите как ее решить. Спасибо. P.s. В сервисе нужно периодически поверять наличие интернета при помощи NetworkInfo.
  17. AndrewShevelev

    Использование LocationSensor в сервисе

    Помогите разобраться с проблемой запуска LocationSensor в сервисе Если запускаю в основном потоке работает, загорается заначек активности gps, координаты OK function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; Begin LocationSensor.Active := True; Result := TJService.JavaClass.START_STICKY; End; Но если пытаюсь запустить в потоке не работает function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; Begin LocationSensor.Active := True; Result := TJService.JavaClass.START_STICKY; TThread.CreateAnonymousThread( procedure() begin TThread.Synchronize(TThread.CurrentThread, procedure begin LocationSensor1.Active:=True; end); end).Start; end; Android 5.1 Samsung delphi 10.1
  18. Rusland

    Таймер в сервисе

    Обычный TTimer использовать нельзя. Кстати почему нельзя? Почему он обращается к Активити в Androidapi.Helpers? Embarcadero исправьте уже свой баг. Как реализовать timer в сервисе?
  19. И снова я к Вам за советом, господа. Задачка: пользователь кидает телефон в карман и в фоновом режиме программа сама проверяет каждые секунд 15 наличие новой строки в стринглисте, который цепляется с файла и пытается отправить http запрос. Как мне до этого подсказали копать надо в сторону сервисов. Что же, начал: создал сервис, прицепил к приложению, кинул на него таймер и http от indy, написал кучу кода. Как итог - сервис виден в процессах но таймер не срабатывает и ничего не происходит (запускаю приложение, что бы запустить сервис, выхожу из него и жду проверяя данные на сервере). Но происходит совсем ничего. Туда ли я вообще полез или это нужно реализовывать как то иначе? Стоит local сервис, может проблема в этом? Ниже в темах писали что таймер не работает или еще что, при компиляции ничего не ругается, хотя условий там море и т.д. Все данные которые мне нужно отправить цепляются из текстовых файлов и далее в TStringList.. Понятное дело что такой сервис будет жрать батарейку и кучу трафика, но они так и так тратятся пользователем в "ручном" режиме
  20. Rusland

    Debug сервиса

    У меня частые проблемы с дебагом сервиса (впрочем как и потоков). Какое-то время breakpoint-ы срабатывают, но через некоторое время я не могу попасть внутрь сервиса - дебаг начинает игнорировать точки останова, что я расставляю внутри сервиса. Например, ставлю breakpoint: function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin Log('DDD1 service started',[]); // сюда Result := TJService.JavaClass.START_STICKY; end; при вызове сервиса студия (в режиме дебага) зависает и через пару минут выдает: (программа на устройстве естественно тоже зависает и через какое-то время пишет Приложение не отвечает. Закрыть его?) Я пробовал делать Clean/Build сервиса (удалял папкe Android), пробовал удалять из программы сервис и добавлять его заново. Это не помогает. Надоело каждый раз собирать проект заново! Кстати, при установке программы с сервисом Android каждый раз выдает мне предупреждение: Я нажимаю всегда Отклонить - пока не нажмешь, студия висит ждет разрешения на запуск приложения. Что это за сообщение?
  21. Martifan

    Android Service + GPS

    Здравствуйте, хочу собрать на сервисе сохранение местоположения в файл на мобильном, можете привести пример как это сделать? Сохранение должны идти к примеру в текстовый документ. Сервис работает, просто хочу разобраться как надо выполнять переодичное действие на нём.