通过AIDL调用AAR库服务无法启动服务意图

时间:2018-02-22 11:12:50

标签: android android-intent intentservice aar

我在我的android应用程序中包含了一个aar库。无论库清单文件中有哪些活动,服务,接收器,我都将其复制到应用程序清单文件中。

现在我想通过AIDL调用库服务。当我启动服务时,得到问题"无法启动服务意图"

有人可以帮助我做些什么来使其发挥作用吗? 操作系统如何告诉该服务在库中可用?

Aar文件库包名是" com.abc.lib"。 aar清单文件中的服务:

    <service android:name="com.abc.lib.MyService"
       android:exported="true">
       <intent-filter>
           <action android:name="com.abc.lib.aidl.IMyService"/>
       </intent-filter>
    </service>

使用以下代码从Application Activity文件调用上述服务:

ComponentName compName = null;
Intent i = new Intent("com.abc.lib.aidl.IMyService");
i.setPackage("com.abc.lib");
compName = startService(i);
return compName;

预感谢。

1 个答案:

答案 0 :(得分:0)

而不是在intent.setPackage中的库包,我尝试了应用程序包,它工作。

ComponentName compName = null;
Intent i = new Intent("com.abc.lib.aidl.IMyService");
i.setPackage("com.abc.application");  //Instead of library package-give the application package
compName = startService(i);
return compName;