Можно ли использовать <service>из динамической библиотеки * .so в основном приложении? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть приложение для Android, которое я могу расширить с помощью динамической библиотеки.У меня нет исходного кода основного приложения, и я не могу его изменить.За исключением манифеста андроида.У меня есть * .aar-файл основного приложения и сценария, который строит все вместе.

Главное приложение создает новый класс Runnable моей библиотеки и передает ему контекст (действие).Я сделал библиотеку из примера шаблона, и она использует код c ++, вызывающий методы java, используя нативные вызовы, такие как jenv->CallObjectMethod.

. В начале у меня было 2 проблемы.Во-первых, мне нужно было сделать приемник для системных событий.Я решаю это путем динамического создания получателя из кода с использованием контекста, полученного из основного приложения.

Вторая проблема, которую я не могу решить, и просьба о помощи: мне нужно создать службу с фильтром намерений для какого-либо события в моей динамикебиблиотека, и мне нужно это позвонить.Но служба должна быть в манифесте, и я записываю ее в нее, но она не вызывает.

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

</service>
                <service
            android:name="com.test.MyLib.MyService"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="...some action..." />
            </intent-filter>
        </service>

Я вижу, как Android пытается вызвать этот сервис как результат действия, но на самом деле это не вызов.Есть ли способ заставить его работать или каким-то образом динамически создавать сервис с намеренным фильтром из кода, как я делал с получателем?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...