v3.7.7: Critical Bug Fixes and Android 12+ Compatibility
π Release v3.7.7
Critical Bug Fixes (4 Stop-Ship Issues)
Fixed 4 critical bugs in the new ConnectionManager:
- β
Promise Coalescing Hang - Multiple concurrent
connect()calls to the same device now properly share the same promise - β Memory Leak on Destroy - Auto-reconnect disconnect subscriptions are now properly cleaned up
- β Connection Storms - Repeated disconnect events no longer trigger multiple reconnection attempts
- β
Race Condition Fix -
cancel()now properly stops reconnection attempts using attemptId generation pattern
Android 12+ Compatibility (Production-Critical)
Fixed 3 critical Android 12+ foreground service issues:
- β
STOP Service Crash - Now uses
stopService()instead ofstartService() - β
Foreground State Check - Prevents
ForegroundServiceStartNotAllowedExceptionon Android 12+ - β Safe UPDATE Notification - Gracefully handles Android 12+ restrictions
Improvements
- β Robust Auto-Reconnect - Now triggers on ANY disconnect (handles platform quirks where error=null)
- β
State Preservation -
connect()now preservesautoReconnectsettings and callbacks - β Connection Timeout Support - Prevents connection hangs
- β Comprehensive Test Suite - 9 tests covering all critical bugs
- β Complete Documentation - Migration guide, Android 12+ warnings, platform parity table
Breaking Changes
None - Fully backward compatible.
Deprecated
ConnectionQueueandReconnectionManagerare now deprecated (useConnectionManagerinstead)- These classes remain available for backward compatibility
Installation
npm install @sfourdrinier/react-native-ble-plx@3.7.7
# or
pnpm add @sfourdrinier/react-native-ble-plx@3.7.7Documentation
See the README for:
- Android 12+ setup requirements
- Migration guide from deprecated classes
- Platform parity details
- Complete API documentation
For a public fork supporting diverse BLE platforms and use cases.