2017-01-12 125 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做。