This Android app provides a line-oriented terminal / console for Bluetooth LE (4.x) devices implementing a custom serial profile. For an overview on Android BLE communication see Android Bluetooth LE Overview.
This app includes UUIDs for widely used serial profiles:
- Nordic Semiconductor nRF51822
- Texas Instruments CC254x
- Microchip RN4870/1
- Telit Bluemod
- Filtering, scanning, linking, reading, writing, notification subscription and cancellation in a simple way
- Support custom scan rules
- Support multi device connections
- Support configuration timeout for connect or operation
- MVVM architecture with ViewModel and StateFlow
- Full Kotlin codebase (BLE library converted from Java to Kotlin)
- RecyclerView with ListAdapter and DiffUtil for efficient device list rendering
| Component | Version |
|---|---|
| Android Gradle Plugin | 8.7.3 |
| Kotlin | 1.9.24 |
| Gradle | 8.9 |
| compileSdk / targetSdk | 35 |
| minSdk | 21 |
| Java (toolchain) | 17 |
| App Version | 2.0 |
- BLE-lib — Pure Kotlin library, no UI dependencies
- App — ViewBinding, ViewModel + StateFlow, Coroutines, RecyclerView with ListAdapter/DiffUtil
- Android 5.0+ (API level 21+)
- On Android 11 or lower, location permission is required for BLE scanning
- On Android 12+, the app uses
BLUETOOTH_SCANandBLUETOOTH_CONNECTpermissions instead of location. See New Bluetooth permissions in Android 12
Add JitPack to your settings.gradle (or root build.gradle) repositories:
dependencyResolutionManagement {
repositories {
...
maven { url 'https://jitpack.io' }
}
}Add the dependency:
dependencies {
implementation 'com.github.Amir-yazdanmanesh:Bluetooth-Low-Energy-Terminal-Android-BLE-Library:2.0.0'
}