An Android library that solves common Bluetooth Low Energy problems, making BLE development easier and more reliable.
Android BLE Library is an open-source library for Android that simplifies Bluetooth Low Energy (BLE) development by solving many of the platform's inherent problems. It provides a high-level API for managing connections, performing data operations, handling bonding, and supporting both GATT client and server roles, significantly reducing the complexity and boilerplate code required for BLE applications.
Android developers building applications that communicate with Bluetooth Low Energy devices, such as IoT sensors, wearables, health monitors, or smart home gadgets, who need a reliable and easy-to-use BLE implementation.
Developers choose this library because it abstracts Android's notoriously difficult BLE API, offering automatic retries, packet splitting/merging, error handling, and modern Kotlin extensions (coroutines, Flow) out of the box, making BLE development faster, more robust, and less error-prone.
A library that makes working with Bluetooth LE on Android a pleasure. Seriously.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles automatic retries, service discovery, and bonding with optional reflection-based bond removal, reducing common connection issues described in the README.
Automatically splits and merges long packets when reading/writing characteristics and descriptors, supporting reliable writes and simplifying data operations as highlighted in the features.
Includes MTU requests, PHY settings, RSSI readings, GATT server support, and handles Service Changed indications, covering many advanced BLE use cases.
Provides coroutine, Flow, and LiveData extensions via separate modules, enabling reactive and asynchronous programming patterns for modern Android development.
The library explicitly does not include BLE scanning, requiring developers to integrate a separate library like Android Scanner Compat Library, adding complexity.
Version 2.2 introduced significant API breaks, and a new version 2.0 is in development that is not backward compatible, posing migration challenges and instability.
Features like bond removal and cache refresh use reflections, which can be unreliable, restricted on newer Android versions, and prone to breaking.