web-dev-qa-db-fra.com

Java (J2SE) Bluetooth basse consommation (BLE)

J'essaie de me connecter à un capteur Bluetooth Low-Energy (BLE) à l'aide de Java. Jusqu'ici, j'ai recherché une bibliothèque qui s'interface avec la pile BlueZ sous Linux.

La seule bibliothèque gratuite que j’ai trouvée pour Java était Bluecove, mais il semble qu’ils n’implémentent pas BLE. J'ai vérifié si mon dongle BT fonctionnait et reconnaissait le capteur à l'aide d'outils de ligne de commande Linux

Sudo hcitool lescan

gatttool -i hci0 -b XX:XX:XX:XX:XX:XX -I

et cela a fonctionné sans problèmes.

Après cela, j’ai essayé l’exemple de Bluecove pour DeviceDiscovery mais mon capteur n’a pas été détecté, il a analysé les périphériques BT normaux. Je ne pouvais pas trouver un moyen de rechercher des périphériques BLE.

Après des recherches plus poussées, je suis parvenu à la conclusion que Bluecove implémentait simplement JSR-82. Si je ne me trompe pas, cette norme est antérieure à BLE et ne la met donc pas en œuvre.

Existe-t-il des alternatives à Bluecove prenant en charge BLE en Java? Je veux dire qu'il devrait y en avoir car Android n'a pas de problèmes (dans les versions plus récentes) pour communiquer avec les périphériques BLE.

Merci d'avance!

13
sgiessmann

Après avoir examiné cela un peu plus tard, j'ai trouvé une réponse nommée TinyB.

https://software.intel.com/en-us/Java-for-bluetooth-le-apps

TinyB est une implémentation BluetoothLE d'Intel et un SDK Java. Jusqu'à présent, j'ai réussi à réaliser tout ce que j'ai essayé.

J'espère que cela aidera les autres à trébucher sur ce sujet.

14
sgiessmann

Une option intéressante consiste à utiliser Kura Bluetooth LE API , qui sont construits au-dessus de la bibliothèque TinyB.

1
Diego