我正在尝试编写一个连接蓝牙智能/ BLE设备的桌面应用程序,例如Polar Heart monitor。
是否有一种公认的方法来执行此操作,Java API或库?
这适用于桌面应用程序而不是android。我在网上看到的一切都是过时的或者特别是安卓的。我宁愿尽量避免编写一些特定于平台的JNI恶作剧。
感谢。
答案 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相关的代码示例。