好的,这里的问题是我有一个通过蓝牙连接到手机的摄像机。与设备的所有通信都是通过 android 服务进行的。该服务会定期使用 GPS 坐标更新相机。不幸的是,该服务不是由我的公司编写的,我们只能控制它的启动和发送命令(但是,如果连接到设备,它会自行执行 GPS)。一旦我们的应用程序启动了服务,我们就会尝试连接到任何包含我公司 OUI 的配对设备。一旦设备断开连接(可能是关闭或电池耗尽),它不会自动重新连接,直到用户重新启动我们的应用程序。因此,在这种情况下,GPS 坐标不会被发送到相机。
这是一个问题,因为用户(对这些服务一无所知,什么都不知道)会认为如果他重新打开设备,它应该被连接。
所以我想我可以将 AlarmManager 与广播接收器或服务一起使用(可能是意图服务,因为连接需要几秒钟才能完成)。也许每隔几分钟我可以检查一次与相机的连接。如果它的存在只是退出,并且如果没有尝试连接(如果有配对的设备)。
但是问题是如果我的应用程序已经在运行怎么办?如果是,则用户控制连接到设备(提示他们)。我是否需要使用共享首选项或类似的东西来判断我的应用程序是否正在运行/关闭?有什么方法可以从服务中判断应用程序是否正在运行?我可以看到这变得棘手。如果有人知道如何处理这个问题,请告诉我。