【问题标题】:CodenameOne background task for BluetoothLe connection代号BluetoothLe 连接的后台任务
【发布时间】:2016-12-19 09:56:54
【问题描述】:

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

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

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

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

PS:我已经寻找解决我的问题的方法,我能找到的最接近的是 CodenameOne 背景音乐播放,但据我所知,这仅用于音乐播放。

【问题讨论】:

    标签: android ios bluetooth background-process codenameone


    【解决方案1】:

    我们将后台行为与 iOS 上的可能情况进行了调整,您只能执行特定的后台任务,如下所述:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

    由于这比 Android 同类产品更具限制性和限制性,因此我们一次映射这个用例。目前我们支持位置、音乐播放和获取。

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

    【讨论】:

    • 谢谢,我会调查的。
    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2017-09-07
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多