Java (J2SE) 低功耗蓝牙 (BLE)

Java (J2SE) Bluetooth Low Energy (BLE)

我正在尝试使用 Java 连接到蓝牙低功耗 (BLE) 传感器。到目前为止,我在 Linux 上搜索了一个与 BlueZ 堆栈接口的库。

我为 Java 找到的唯一免费库是 Bluecove,但它们似乎没有实现 BLE。 我使用 Linux 命令行工具

检查了我的 BT 加密狗是否正常工作并识别了传感器
sudo hcitool lescan

gatttool -i hci0 -b XX:XX:XX:XX:XX:XX -I

它运行没有问题。

之后,我尝试了 DeviceDiscovery 的 Bluecove 示例,但我的传感器没有显示,而是扫描了普通的 BT 设备。我找不到扫描 BLE 设备的方法。

通过进一步研究,我得出的结论是 Bluecove 只是实现了 JSR-82。 如果我没记错的话,这个标准比 BLE 早,因此没有实现它。

在 Java 中是否有任何支持 BLE 的 Bluecove 替代品?我的意思是应该有,因为 Android 与 BLE 设备通信没有问题(在较新的版本中)。

提前致谢!

经过一段时间的研究,我找到了一个名为 TinyB 的答案。

https://software.intel.com/en-us/java-for-bluetooth-le-apps

TinyB 是 Intel 的 BluetoothLE 实现,它具有 Java SDK。 到目前为止,我已经能够实现我尝试过的一切。

希望这能帮助其他遇到这个话题的人。

一个有趣的选择是使用 Kura Bluetooth LE APIs,它建立在 TinyB 库之上。