Java APIs for managing BLE properties
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

jgatttool - Java library for Bluetooth LE GATT


This library provides Java APIs for read and write values exposed by a Bluetooth Low Energy devices such as sensors, wearables, etc. BLE bases his data model on Generic Attribute Profile (GATT). With jgatttool you can develop your own BLE central device in Java.

jgatttool is a wrapper of gatttool, a command-line utility that uses BlueZ stack (requires Linux).


It is difficult to find a cross-platform BLE library for every language except for smartphone platforms' most used programming languages. gatttool is a great command-line tool that works great on Linux but it's written in C and it's not documented, and there aren't similar documented libraries or tools around. So I wrote myself this gatttool wrapper to easily write and read GATT properties in Java.

You can use this library in any Linux system that includes gatttool (Linux Desktop computers, WindRiver Linux gateways, RaspberryPis, etc.).


On the Example directory you can find a use case example for jgattool library. The system represent an IoT architecture with a focus on the communication between a Gateway device and a Genuino101 device. To run the example you have to configure the connection strings and addresses of devices and mock components that are not uploaded - because they are private. The only aim of this example is to show a real use case of the library.


The code is pretty much self-explained and it is basically a set of APIs for convert and parse data.


Pull-requests and Issues are welcome.

Next improvements

  • Parsing of all data types
  • Notifications management


This project is released under MIT license as you can check in file.