用于BluetoothLe连接的CodenameOne后台任务

时间:2016-08-12 11:38:01

标签: android ios bluetooth background-process codenameone

我正在使用Codename One开发一个应用程序,它连接到蓝牙LE专有的外部设备并记录接收的数据(平均数据大约每秒到达一次)。我正在使用Bluetooth LE CN1 library(Cordova Plugin的包装器)。

应用程序应该能够接收和记录数据,即使不在前台也是如此,我不知道如何在CodenameOne中以系统不会自行关闭它的方式进行操作。

我编写了一个原生的Android应用程序,在与外部BTLE设备连接的持续时间内使用持久通知的服务 - 当连接丢失(或用户取消连接)时后台服务退出。有没有办法在CodenameOne中做同样的事情,这将在Android和iOS上都有效?我知道我可以编写本机代码来做到这一点,但我仍然怀疑是否仍然可以使用插件 - 我想避免为两个操作系统编写应用程序本机的整个蓝牙连接模块,因为这种方式否定了这一点使用CodenameOne。

我没有尝试通过生成一个java线程来实现它,因为它看起来不会真正起作用,因为它被转换为本机代码......或者它呢?

PS:我已经搜索了我的问题的解决方案,我能找到的最接近的是CodenameOne背景音乐播放,但这只是为了音乐播放,据我所知。

1 个答案:

答案 0 :(得分:2)

我们将背景行为与iOS上可能的内容进行了对比,其中您仅限于特定的后台任务,如下所述:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

由于这比Android等价物更具限制性和限制性,我们一次映射这一个用例。目前我们支持位置,音乐播放和取。

由于蓝牙支持本身相当新,我们目前不支持此功能,尽管可以通过包含启用此背景行为的ios.plistInject build hint来支持它。这可能需要一些本机代码才能正确绑定此行为。