2016-08-12 32 views
2

我正在開發一個使用Codename One的應用程序,該應用程序連接到藍牙LE專有的外部設備並記錄接收到的數據(平均數據大約每秒鐘到達一次)。我正在使用Bluetooth LE CN1 library(科爾多瓦的包裝Plugin)。CodenameOne BluetoothLe連接的後臺任務

即使不在前臺,應用程序也應該能夠接收和記錄數據,但我不知道如何在CodenameOne中以一種不會自行關閉它的方式進行操作。

我寫了一個原生Android應用程序,其中我使用持續通知的服務與外部BTLE設備連接 - 連接丟失(或用戶取消連接)時退出後臺服務。有沒有辦法在CodenameOne中做同樣的事情,這可以在Android和iOS上使用?我知道我可以編寫原生代碼來做到這一點,但是我仍然懷疑如果我仍然可以使用插件 - 我想避免編寫兩個操作系統原生的應用程序的整個藍牙連接模塊,因爲這種否定點使用CodenameOne。

我還沒有嘗試過只是產生一個Java線程,因爲它看起來不會真的工作,因爲它被轉換爲本地代碼...或者它呢?

PS:我已經找到了解決方案,最近我能找到CodenameOne背景音樂播放,但這只是爲了音樂播放,據我瞭解。

回答

1

我們對齊背景行爲,什麼是可能在iOS上,你被限制在特定的背景任務,這裏說明:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

自認爲是更爲嚴格,限制比Android的相當於我們映射這個用例一次。目前我們支持位置,音樂播放&取。

由於藍牙支持本身是相當新的,我們目前還不支持這種支持,儘管可能通過包含支持該背景行爲的ios.plistInjectbuild hint來支持它。這可能需要一些本地代碼來正確地綁定這種行爲。

+0

謝謝,我會研究它。 – ribafish