我开始为android开发,但遇到有关服务的问题。我对此进行了大量研究,但找不到解决方案。
我正在做一个收集RFID标签信息的应用。为此,我正在使用第三方中间件,该中间件处理与RFID读取器的蓝牙连接以及其他事件(如连接,读取,错误等)。因此,我的应用程序创建了一个广播接收器,用于处理中间件发送的所有消息和数据意图。对于这一部分,一切都很好。
问题是我试图使用下面的代码(由中间件文档提供)来启动中间件服务,但是它不起作用。
Intent intent = new Intent("com.supplier.middleware.runner");
intent.setPackage("com.supplier.middleware");
startService(intent);
我目前在Android 8.1.0上使用华硕Zenfone MAX M1(ASUS_X00HD)。该文档还描述了一种停止服务的方法(关闭应用程序时必须使用该方法),并且停止服务的意图也有效。因此,如果我手动启动中间件并尝试以编程方式关闭,则可以正常工作。
[经过数天的尝试-未成功-解决了这一问题,我使用Motorola Moto Maxx(我认为是Android 6)和Samsung J1(即Android 5.1.1)以及两款智能手机对我的应用程序进行了测试[很好:当我调用startService时,出现一个通知项;当我调用stopService时,通知项消失了。
由于Android 8,我也尝试使用“ startForegroundService”,但也没有成功。是否可以“监视” startService调用,所以也许我可以跟踪任何错误?我是在做错什么吗?或者,我是不是在做重要的事情?
JobIntentService代替意图服务。它可以工作。