2017-03-06 93 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不支持未添加的同步调用。

我们考虑过扩展实现,但我们也希望尽可能使其与原始数据尽可能接近,以便可以快速引入更改。