@Denisca2828

Почему не получается запустить сервис в java android?

У меня есть два приложения, в одном сервис, в другом код для его запуска.
Проблема в том, что я не могу из другого приложения запустить сервис.
Я объявил сервис в первом приложении:
<service
        android:name="me.name.myapp.MyService"
        android:exported="true"
        android:enabled="true">
</service>

Также в первом приложении есть класс который наследует Service.
Во втором приложении(которое должно запускать сервис) следующий код:
Intent intent = new Intent();
intent.setComponent(new ComponentName("me.name.myapp", "me.name.myapp.MyService"));

System.out.println(startForegroundService(intent)); // или bindService

Этот код выводит null. Но если я через adb запускаю сервис:
adb shell am start-foreground-service me.name.myapp/me.name.myapp.MyService

А потом заново запускаю startService или bindService, то всё работает. Почему я не могу запустить сервис из другого приложения?
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Я же уже отвечал.
Потребуется aidl описание службы
https://github.com/402d/RawbtAPI/blob/master/api/s...

Для подключения потребуется создать интент , у меня вот так
public static Intent createExplicitIntent(){
        Intent intent = new Intent();
        intent.setPackage("ru.a402d.rawbtprinter");
        intent.setAction("rawbt.action.SERVICE");
        return intent;
    }


https://github.com/402d/RawbtAPI/blob/master/api/s...

вот с 128 строки начинается описание как взаимодействовать со службой
а в строке 158 в методе онКреате вызываю ее биндинг
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы