Bluetooth LE for Modern Android Development
summary
Practical checklist for BLE on Android: target at least API level 28 (API 31 adds companion device service), use CompanionDeviceManager for pairing/background permissions, wrap callbacks into Kotlin coroutines Flow and guard all GATT calls with a mutex plus a timeout so only one GATT operation is in flight, split read and write into separate characteristics, enable notifications by calling setCharacteristicNotification and then writing the CCC descriptor, assume ~20–21 byte payloads, and consider PHY options (LE 1M/2M/coded S2/S8) to trade throughput for range.
AI-written summary · about
chapters (11)
- 0:00Introduction and house analogy
- 3:33Bluetooth standards challenges
- 4:39Bluetooth basics GAP and GATT
- 14:38Android Bluetooth versions
- 16:01Companion device manager
- 20:32Connecting to GATT devices
- 22:40Bluetooth GATT callbacks
- 28:16Notifications in Bluetooth
- 30:20Bluetooth 5 PHY options
- 36:20Companion device service
- 37:05Key takeaways and conclusion
related talks
40mState of Bluetooth LE on Android in 2023
35mState of BLE on Android in 2022
46mBluetooth Low Energy on Android: Top Tips for the Tricky Bits
38mBest Practices for Bluetooth Development
42mAdvanced Bluetooth for Android Developers
34mA journey in Android's BLE world
51mCodelab: Optimizing Usage of Bluetooth Peripheral Devices
31mAn introduction to Bluetooth mesh for Android developers
