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 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 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.