如何使用Java在Raspberry Pi 3上访问BLE?
Raspberry Pi 3包括BLE支持。我确认它的工作原理
sudo hcitool lescan
它为相邻广告商返回MAC和BLE的“完整本地名称”。
如何在Java中以编程方式访问它?
Raspberry Pi 3包括BLE支持。我确认它的工作原理
sudo hcitool lescan
它为相邻广告商返回MAC和BLE的“完整本地名称”。
如何在Java中以编程方式访问它?
要在Raspberry Pi 3上使用BLE,您必须更新bluez(Raspbian linux中的蓝牙核心),然后使用bluez D-Bus接口与之交互。
我正在寻找自己的java库,但这非常困难,因为关于Java中的D-Bus和bluez的文档很少。
对于 bluez,只有上一个发行版中的示例代码。
现在,我已经编写了一个简单的脚本,将bluez版本更新为最新版本:https://gist.github.com/tongo/94338cebf4e6367d353439bca8d0a376
我还发现了一篇谈论d-bus,java和bluez的博客文章:http://smartspacestuff.blogspot.it/2016/02/i-got-figurin-out-dbus-bluez.html
它很有用,但对我来说不是很清楚。
我希望这可以有所帮助。
如果您发现其他文档,请将其发布。
我不认为目前有一个明确或简单的答案。蓝牙集成需要不属于标准 JDK 的本机组件。
在Linux上使用蓝牙与Java的最常见库是BlueCove。BlueCove提供了额外的原生库,用于在Linux上使用蓝牙:BlueCove-GPL或BlueCove-bluez(实验)。但是,您可能需要自己编译其中一个以在 RPi 上使用。做的方法将取决于您的发行版,并且需要一些重要的linux知识,编译本机代码等。快速的谷歌搜索显示了以前RPi版本的一些工作示例。目前还不清楚它是否能在RPi 3上与BLE一起使用。
另一个可能是尝试使用“Camel Bluetooth Component”,它是Bluecove上的包装器,并期望安装libbluetooth-dev和blueman。但同样,不清楚它是否适用于RPi 3。
如果无法实现真正的集成工作,另一种选择可能是简单地从Java向您知道已经工作的命令行蓝牙实用程序进行外部Process调用。如果这是一个选项,这取决于您的用例,但我怀疑对于许多BLE特定的用例来说可能就足够了。