x11 Опубликовано 2 февраля, 2018 Поделиться Опубликовано 2 февраля, 2018 Я не пойму, как правильно стартовать службу и именовать пакеты. Подскажите. Есть пакет хост-приложения и пакет службы. В options обоих пакетов, в VersionInfo, в строке package прописано одинаково "com.maindomain.$(ModuleName)". А для создания и старта службы есть код: const MyPackageName = 'com.embarcadero.services.CallerIdSrv'; ... ... ... FService := TJIntent.Create; FService.setClassName(TAndroidHelper.Context.getPackageName, TAndroidHelper.StringToJString(MyPackageName)); FService.setAction(StringToJString('StartService')); TAndroidHelper.Activity.startService(FService); так служба запускается. А если MyPackageName = 'com.maindomain.CallerIdSrv', то так служба не запускается и ошибок (исключений) нет. Что это setClassName и что она делает? Что нужно туда передавать, как правильно? В справке не нашел. Спасибо. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 8 февраля, 2018 Модераторы Поделиться Опубликовано 8 февраля, 2018 эмба вроде настаивает чтобы служба имела начало "com.embarcadero" а дальше всё кроме service Цитата Ссылка на комментарий
0 x11 Опубликовано 8 февраля, 2018 Автор Поделиться Опубликовано 8 февраля, 2018 Не совсем понял. Цитата Ссылка на комментарий
0 x11 Опубликовано 8 февраля, 2018 Автор Поделиться Опубликовано 8 февраля, 2018 Вы про код сейчас или про настройки проекта? Цитата Ссылка на комментарий
0 mazayhin Опубликовано 9 февраля, 2018 Поделиться Опубликовано 9 февраля, 2018 Если сервис называется MainSvc, то вызов д.б. TAndroidHelper.StringToJString('com.embarcadero.services.MainSvc') Ну и в настройках проекта соответственно Цитата Ссылка на комментарий
0 x11 Опубликовано 9 февраля, 2018 Автор Поделиться Опубликовано 9 февраля, 2018 А вот в настройках проекта самого сервиса у меня своё название, не com.embarcadera.... и работает ведь. Цитата Ссылка на комментарий
0 Morfi Опубликовано 20 мая, 2023 Поделиться Опубликовано 20 мая, 2023 В 08.02.2018 в 19:58, Равиль Зарипов (ZuBy) сказал: эмба вроде настаивает чтобы служба имела начало "com.embarcadero" а дальше всё кроме service А чем это обусловлено? Зачем такие ограничения? Цитата Ссылка на комментарий
Вопрос
x11
Я не пойму, как правильно стартовать службу и именовать пакеты.
Подскажите.
Есть пакет хост-приложения и пакет службы. В options обоих пакетов, в VersionInfo, в строке package прописано одинаково "com.maindomain.$(ModuleName)".
А для создания и старта службы есть код:
const MyPackageName = 'com.embarcadero.services.CallerIdSrv'; ... ... ... FService := TJIntent.Create; FService.setClassName(TAndroidHelper.Context.getPackageName, TAndroidHelper.StringToJString(MyPackageName)); FService.setAction(StringToJString('StartService')); TAndroidHelper.Activity.startService(FService);
так служба запускается.
А если MyPackageName = 'com.maindomain.CallerIdSrv', то так служба не запускается и ошибок (исключений) нет.
Что это setClassName и что она делает? Что нужно туда передавать, как правильно? В справке не нашел.
Спасибо.
Ссылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.