【发布时间】:2021-12-13 01:54:51
【问题描述】:
我目前正在为 ATAK 开发一个插件,我需要在其中启动一些从我创建的其他模块导入的服务。但是,当我尝试启动服务时,我收到标题中所述的错误。我有点困惑,因为我创建的服务在模块本身和插件 AndroidManifests 中都包含 BIND_JOB_SERVICE 权限,如下所示
<service
android:name="mqtt.MqttBrokerService"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE">
<intent-filter>
<action android:name="mqtt.MqttBrokerService"></action>
</intent-filter>
</service>
这些代码块位于 AndroidManifest 的应用程序部分,所以这不是问题。我很傻眼,不知道为什么会发生这种情况,也不知道为什么它甚至需要这个许可,因为它不是工作服务。最重要的是我创建了一个示例应用程序,它与我的插件具有完全相同的清单,并且示例应用程序可以很好地启动服务。唯一的区别在于我的插件,我不会从主要活动中启动服务,如下所示
Intent startMqtt = new Intent("mqtt.MqttBrokerService");
startMqtt.setPackage("com.atakmap.android");
getMapView().getContext().startForegroundService(startMqtt);
【问题讨论】:
标签: java android android-intent android-intentservice