2017-03-06 131 views
2

(最初詢問上GoogleGroup支持) 如果您遇到的問題,請註明完整的平臺,您的問題適用於: IDE:NetBeans的 桌面操作系統:Mac 模擬器:無,由於藍牙在模擬器上不可用的用法 裝置:Android手機 藍牙裝置:計步器藍牙BLE通訊科W/CodenameOne

看來BLE支持是不可靠的。我打開我正在嘗試連接的藍牙設備(計步器),然後在手機上開始掃描設備,有時會啓動,有時不啓動。如果確實有問題,我嘗試使用地址進行連接,然後出現「無法連接到設備」。 (順便說一句,如果我使用isConnected(),它會拋出一個異常,說它從來沒有連接過,我認爲它會返回false) 我試圖複製一個原生的iOS應用程序,每次連接到計步器都沒有問題。

我一直在尋找關於BLE通信的「最佳實踐」,但找不到任何實質性的東西。 Cordova文檔的鏈接很麻煩,因爲需要翻譯成Codename One lib。

+0

你可以發佈你用來初始化,掃描,連接的代碼嗎?我有一個應用程序,大部分都在兩個平臺上工作。 –

+0

另外,你是否嘗試使用重新連接?你是否斷開並關閉,或者斷開連接?斷開連接後,我無法再次連接。目前唯一的工作是在斷開連接後退出應用程序,但用戶需要再次啓動應用程序才能重新連接。到目前爲止我還沒有解決這個問題。我建議你看看,如果你通常在連接完成後連接成功,並且在斷開連接並重新連接後沒有完全退出應用程序,連接成功。 –

+0

@JamesH這是在[代號一](https://www.codenameone.com),所以它使用[本庫](https://github.com/chen-fishbein/bluetoothle-codenameone)的Android本機代碼是[這裏](https://github.com/chen-fishbein/bluetoothle-codenameone/tree/master/CN1Bluethooth/native/android/com/codename1/bluetoothle),對於iOS是[here](https:// github的.com /陳-菲斯/ bluetoothle-codenameone /樹/主/ CN1Bluethooth /天然的/ IOS) –

回答

0

正如您在討論區的https://groups.google.com/d/msgid/codenameone-discussions/b2b022e0-47e3-4a4c-9c33-4998ce2ef65e%40googlegroups.com[thread中所提到的那樣] API是基於回調的,並且期望您等待設備異步響應。

這是因爲我們https://github.com/randdusing/cordova-plugin-bluetoothle[ported科爾多瓦插件]以穩定的方式實現此功能。由於JavaScript不支持未添加的同步調用。

我們考慮過擴展實現,但我們也希望儘可能使其與原始數據儘可能接近,以便可以快速引入更改。