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

15

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

我找到的唯一免费的Java库是Bluecove,但它似乎没有实现BLE。我使用Linux命令行工具检查了我的BT dongle是否正常工作并识别传感器。

sudo hcitool lescan

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

然后我尝试了Bluecove的DeviceDiscovery示例,但我的传感器没有出现,它只扫描普通的BT设备。我找不到一种方法来扫描BLE设备。

进一步研究后,我得出结论:Bluecove仅实现JSR-82。如果我没有弄错,这个标准比BLE旧,因此不支持它。

有没有其他支持Java中BLE的替代方案?应该有,因为Android在与BLE设备通信方面没有问题(在更新的版本中)。

提前致谢!


1
可能是Java中的蓝牙低功耗API的重复问题。 - Anders R. Bystrup
4
这个链接的话题是关于Windows使用了不同的蓝牙堆栈。我认为这些话题有点相似,因为只要存在低层连接,就可以使用SmartGATTLib。 - sgiessmann
@sgiessmann 你弄明白了吗,是否可以使用SmartGATTLib通过BLE dongle等通信与BLE进行通信?据我所知,SmartGATTLib是为智能手机开发的,不是吗? - Steckdoserich
2个回答

14

稍后我进行了一番调查,找到了一个名为TinyB的答案。

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

TinyB是英特尔公司推出的一种BluetoothLE实现,它具备Java SDK的功能。迄今为止,我已经成功实现了我尝试的所有功能。

希望这能帮助其他遇到类似问题的人。


你能否使用TinyB库监听广告,或者你是如何实现的? - Michael Burger
3
这个答案不再被接受,因为链接已经失效。 - DoctorDbx
TinyB 的主页是 http://iotdk.intel.com/docs/master/tinyb/java/。 - Mike Allen
GitHub - https://github.com/intel-iot-devkit/tinyb 和其演示视频 - https://www.youtube.com/watch?v=XsC0VXVMS9Y - vim

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接