2017-01-12 104 views
0

我正在尝试编写一个连接到蓝牙智能/ BLE设备的桌面应用程序,例如Polar心脏监视器。Java BLE /蓝牙智能库

有没有一个公认的方法来做到这一点,Java API或库?

这是一个桌面应用程序而不是android。我在网上看到的所有内容都是过时的或特定的android。我宁愿尽量避免编写一些平台特定的JNI shenanigans。

谢谢。

回答

0

我已经在使用Java的桌面应用程序(基于Linux)中使用了NRJSerial。它有本地的,但我不必直接处理。有几种方法可以从Java中的USB /串行端口读取,但我发现这是便携和简单的。

尽管有一个警告 - 它是低级别。我正在处理一个刚刚转储二进制文件的PulseOximeter,所以它不是太糟糕。如果你开始进入关贸总协定等等,那么处理这件事将是一项体面的工作。

0

如果您打算使用基于Linux的系统,则可以使用bluez5。

Bluez5公开了DBus中的接口,因此可以使用您选择的dbus绑定(C,python,C#Mono ..)与bluez进行交互。使用dbus-api你可以扫描,连接,配对,通知,读/写,广告等等

你可以在这里找到由bluez公开的dbus api的描述(我建议看看适配器的API,设备的API和GATT-API):https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc

在深入代码之前,你可以玩弄bluetoothctl(一个工具,您可以使用配对,连接,服务发现,关贸总协定属性读&写等)。 此外,您还可以在这里找到bluetoothctl的源代码:https://git.kernel.org/cgit/bluetooth/bluez.git/tree/client/main.c

bluetoothctl使用GLib的GDBus(DBUS绑定在油嘴C)建成并你会发现几乎所有的代码示例,你想用的bluez做。