Java BLE /蓝牙智能库

时间:2017-01-12 20:21:56

标签: java bluetooth bluetooth-lowenergy desktop

我正在尝试编写一个连接蓝牙智能/ BLE设备的桌面应用程序,例如Polar Heart monitor。

是否有一种公认的方法来执行此操作,Java API或库?

这适用于桌面应用程序而不是android。我在网上看到的一切都是过时的或者特别是安卓的。我宁愿尽量避免编写一些特定于平台的JNI恶作剧。

感谢。

2 个答案:

答案 0 :(得分:0)

我在使用Java的桌面应用程序(基于Linux)中使用了NRJSerial。它有原生的,但我没有必要直接处理。有一些方法可以从Java中读取USB /串行端口,但我发现这是便携和简单的。

虽然有一个警告 - 它的水平很低。我正在处理一个只丢弃二进制的PulseOximeter,所以它不是太糟糕。如果你开始进入关贸总协定等等,处理这项工作将是一项相当大的工作。

答案 1 :(得分:0)

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

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

你可以在这里找到bluez公开的dbus api的描述(我建议看一下adapter-api,device-api和gatt-api):https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc

在深入研究代码之前,您可以使用bluetoothctl(一种可用于配对,连接,服务发现,gatt属性读取和写入等的工具)。 此外,您可以在此处找到bluetoothctl的源代码:https://git.kernel.org/cgit/bluetooth/bluez.git/tree/client/main.c

bluetoothctl是使用GLib GDBus(用于C中的Glib的dbus绑定)构建的,您可以找到几乎所有与bluez相关的代码示例。