Jump to content
Sign in to follow this  
Yaroslav Brovin

[Новости] Использование Андроид сервисов

Recommended Posts

Сервисы являются неотъемлемой частью мобильных приложений. Они позволяют выполнять фоновые задачи в то время, когда ваше приложение может быть выгружено из памяти.
Отслеживание местоположения пользователя, мониторинг его активности, прием сообщений и проверка почты - это лишь краткий перечень типовых задач, решаемых с помощью Android сервисов.

До настоящего момента в FGX Native не было полноценной поддержки Android сервисов. И хотя при должном упорстве сервисы можно было реализовать и ранее - это не было тривиальной задачей и требовало определенных знаний. 

Я рад сообщить, что в ближайшем релизе мы запускаем полную поддержку Android сервисов, которая включает в себя:

  • Адаптированую платформу FGX Native для использования базового функционал библиотеки (логирование, таймеры и тд) в сервисах.
  • Новый менеджер для удобного добавления и управления настройками Android сервисов.

image.png

С нетерпением ждем релиза. Всем хороших выходных.

  • Like 12
  • Thanks 3

Share this post


Link to post
Share on other sites

Очень ждем релиза и благодарны за такой продукт.

Если возможно можете сделать демо пример сервиса отслеживание местоположения пользователя. 

Мы запустили несколько корпоративных проектов и очень довольны результатами. 

Спасибо

 

 

  • Like 3

Share this post


Link to post
Share on other sites

После долгих раздумий сервис таки сделал на java

Иначе получается очень большой размер apk

Share this post


Link to post
Share on other sites

Если кому-то интересно, могу опубликовать определение местоположения с сервисом на java и клиентом на fgx

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
2 минуты назад, Stas сказал:

Если кому-то интересно, могу опубликовать определение местоположения с сервисом на java и клиентом на fgx

Конечно интересно, любые исходники важны на этапе понимания неизвестной темы.

Share this post


Link to post
Share on other sites

Судя по всему, желание есть. Итак.

Перед собой поставил задачу следующего вида :

Определение местоположения устройства после выхода пользователя из приложения.

Методы решения 

1) Приложение на java сервис на java - не рассматриваем, в связи с отсутствием связи с темой форума

2) Приложение на delphi сервис на delphi

3) Приложение на delphi сервис на java

Второй и третий пункт рассмотрим подробнее 

2) Создание сервиса  на  Firemonkey и вызова его из FGX было  доступно давно.

 Для этого достаточно создать сервис  средствами Embarcadero, и в приложении FGX подправить манифест, classes.dex и вызвать сервис следующим методом

procedure TFormMain.StartService(const AServiceName: string);
var
  LIntent: TJIntent;
  LService: string;
begin
  LIntent := TJIntent.Create;
  LService := 'com.embarcadero.services.'+AServiceName;
  LIntent.setClassName(TfgAndroidHelper.Context, StringToJString(LService));
  LIntent.putExtra('url','https://mysite.com/getlocation'); //Тут мы передадим куда отправлять местоположение
  TfgAndroidHelper.Activity.startService(LIntent)
end;

В Deployment мы добавим so сервиса, мост от Embarcadero (Как в FMX) и измененный  classes.dex, (как делать это, я писал в теме про отпечаток пальца )

Для последней версии FGX вместо создания собственного classes.dex достаточно просто добавить jar сервиса , который создал FMX в FGX Android libraries

Что меня остановило от использования этого  метода, это огромный размер создаваемого приложения, и сложность в его распространении.

Де факто,  сервис, выполняющий очень небольшой объем работы, занимает почти столько же места, как и само приложение.

Потому, я от этого  отказался

3) Тут все гораздо интереснее. 

Для создания тестового примера  я использовал пример из https://github.com/codepath/android_guides

В этом примере сервис определяет местоположение, и сохраняет его в логах.

Этого мне было мало, и я добавил возможность отсылки местоположения на сервер

Основная проблема, которая возникла передо мной, это убивание сервиса андроидом из памяти на более новых версиях.

Потому, было решено перезапускать  сервис через некоторое время с помощью AlarmManager.

З.Ы.  Дополнительные разрешения для Xiaomi добавлены при помощи кнопки Ask BackGround.

Спасибо

 

location.7z

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites
33 минуты назад, Stas сказал:

и в приложении FGX подправить манифест,

Можно поподробнее с точки зрения родных Java сервисов. Какие данные указываете в манифесте, например, для подключения Background Location Service?

Спрашиваю, так как могу в новом дизайнере управления сервисов сделать режим добавления Java сервисов без нативной части. При таком подходе всеми сервисами можно будет удобно управлять из IDE без необходимости править манифест.  

Share this post


Link to post
Share on other sites

Для Xiaomi я добавил 

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

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

<service android:name="com.embarcadero.services.LocationService" />

В результате на двух эмуляторах и на Nexus 2013 работает без перерыва, вплоть до выключения

На Redmi 5 вырубается, если не запросить разрешения о работе в фоновом режиме.

Share this post


Link to post
Share on other sites
В 25.05.2020 в 12:09, Kanat сказал:

Очень ждем релиза и благодарны за такой продукт.

Если возможно можете сделать демо пример сервиса отслеживание местоположения пользователя. 

Мы запустили несколько корпоративных проектов и очень довольны результатами. 

Спасибо

 

 

У вас приложения выложены в GPlay? Или ставите так.
Я спрашиваю, так как последние время Google очень сильно контролит программы использующие фоновое определение положений и вообще всего что в фоне.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Yaroslav Brovin
      Всем доброго дня,
      Мы постоянно работаем над обновлениями библиотеки FGX Native, чтобы предлагать вам больше новых возможностей для решения ваших задач. Впереди вас ждет поддержка Андроид сервисов,  новые крутые возможности по автоматизации управления ресурсами, шаблоны готовых проектов и многое другое.
      Расширение возможностей библиотеки - это несомненно важная составляющая развития продукта. Однако, вторым важным компонентом развития является обучение правильным техникам и приемам использования библиотеки, чтобы приложения делались быстрее, гибче, удобнее и качественнее, а поддержка доставляла вам удовольствие.
      В связи с этим мы планируем провести серию пробных вебинаров по обзору возможностей библиотеки, обучению использованию компонентов и тд.
      Нам очень важно знать ваше мнение, как пользователей:
      Что в библиотеке вызывает у вас сложности? На какие компоненты вы хотели бы обзор на вебинаре? На что вы потратили больше всего времени при работе с библиотекой? Оставьте ваши пожелания под этой новостью.
      Спасибо за внимание
    • By Yaroslav Brovin
      Теперь в FGX Native появится новый компонент для отображения рекламы в вашем приложении TfgBannerAd. Компонент позволяет монетизировать ваше приложение и получать пассивный доход.
      Компонент поддерживает несколько видов баннера, поэтому вы всегда сможете подобрать подходящий размер.
      В качестве рекламной площадки используется Google AdMob.
       
      Компонент будет доступен в 1.1.6.0.
    • By Yaroslav Brovin
      Сложно представить мобильное приложение без графических ресурсов. Поиск иконок зачастую становится довольно сложной и не тривиальной задачей, особенно с условием необходимости найти иконки в разных масштабах, чтобы они четко выглядели на любых устройствах клиентов. 
      Мы подумали, что можем помочь вам с этим и сэкономить время, которое вы можете потратить на что-то более важное. Теперь вы сможете в пару кликов добавить современные иконки в ваше приложение через дизайнер ресурсов FGX Native.


      Около 1000 вариантов уникальных иконок доступно вам в 4 различных размерах (18х18, 24х24, 36х36 и 48х48). Каждая иконка поддерживает 5 варианта скейлов (1.0, 1.5, 2.0, 3.0 и 4.0) для каждого базового размера и специально разработана с учетом Материал дизайна для Андроид приложений.
      В будущем наборы иконок будут расширяться и появляться новые.
      Возможность появится в 1.1.6.0. Не пропусти!

    • By Yaroslav Brovin
      Вести с полей разработки библиотеки FGX Native под iOS.
      Новые полностью реализованные компоненты TfgProgresBar, TfgAniIndicator и почти полностью реализованный TfgEdit.

       
       
    • By Yaroslav Brovin
      Hello everybody,
      The FGX Native library was originally developed in Russian , as the first planned distribution market was Russia and the CIS. It was a very long journey during which a large number of foreign developers contacted me and were interested in the library. The international version of the library is the next important stage in the development of the FGX Native and its entry to the international level.
      I am happy to share with you the current work in this area. We have already finished translating all the library's design-time packages for the IDE. This includes translating all forms, wizards, designers and etc. We specially developed new universal component for localization, which we actively use in the international version.


      The next steps are:
      Translation samples description. CICD for internation version. EULA and license translation. Thank you for your attention, follow the news and do not get sick!
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...