brux88_beacon 0.1.6 copy "brux88_beacon: ^0.1.6" to clipboard
brux88_beacon: ^0.1.6 copied to clipboard

A Flutter plugin for handling BLE beacons with background detection and reliable monitoring.

Changelog #

All notable changes to the Brux88 Beacon plugin will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.6 - 2025-05-26 #

🔧 Critical Fixes

  • FIXED: "Fatal Exception: java.lang.NoSuchMethodError" crash: Android 8.0

0.1.5 - 2025-05-26 #

🔧 Critical Fixes

  • FIXED: "Reply already submitted" crash: Resolved fatal error that occurred when starting the app in release mode

  • Removed duplicate setAutoRestartEnabled method call in onMethodCall

  • Fixed recursive calls in watchdog methods that caused multiple Result responses

  • Added SafeMethodResult wrapper to prevent duplicate responses to Flutter

  • Improved error handling in method channel communications

  • 🛡️ Stability Improvements

  • Enhanced Error Recovery: Added automatic recovery mechanisms for common failure scenarios

  • Bluetooth state recovery with automatic retry

  • Service restart recovery for crashed background services

  • Permission validation before critical operations

  • State Management: Implemented proper plugin state tracking to prevent race conditions

  • Added PluginState enum for better state management

  • Implemented AsyncOperationManager for safe async operations

  • Added state validation before executing operations

0.1.4 - 2025-01-23 #

Added #

  • Independent Background Service Control: New methods for granular control of background service
    • startBackgroundService() - Start only the background service without foreground monitoring
    • stopBackgroundService() - Stop the background service independently
    • restartBackgroundService() - Restart the background service with one command
    • isBackgroundServiceRunning() - Check real-time status of background service
    • setBackgroundServiceEnabled(bool) - Enable/disable background service auto-start
    • isBackgroundServiceEnabled() - Check if background service auto-start is enabled

Enhanced #

  • Background Service Optimization: Background-only mode uses optimized scan intervals to preserve battery life
    • Background scan intervals: 10 seconds between scans (vs 0 seconds in foreground mode)
    • Deep background scan intervals: 30 seconds between scans
    • Intelligent power management based on service mode
  • Service State Management: Improved service lifecycle management with better error handling
  • Notification System: Different notification messages for background-only vs normal service mode
  • Example Application: Complete example app demonstrating all new background service controls
  • Documentation: Comprehensive documentation updates with practical examples

Improved #

  • Error Handling: Enhanced error reporting for background service operations
  • State Synchronization: Better synchronization between Flutter layer and native service state
  • Logging System: More detailed logging for background service operations and state changes
  • Permission Management: Improved handling of battery optimization and exact alarm permissions

Technical Changes #

  • Android Plugin: Extended Brux88BeaconPlugin.kt with new method handlers for background service control
  • Service Architecture: Modified BeaconMonitoringService.kt to support background-only mode with backgroundOnly intent extra
  • Preferences System: Added KEY_BACKGROUND_SERVICE_ENABLED preference for persistent background service state
  • Scan Configuration: Dynamic scan period configuration based on service mode (background-only vs normal)

Developer Experience #

  • Complete Example: New example application with intuitive UI for testing all features
  • Debug Tools: Enhanced debug mode with service-specific logging
  • Status Monitoring: Real-time status updates for both foreground monitoring and background service
  • Error Feedback: Clear error messages and snackbar notifications in example app

Backward Compatibility #

  • No Breaking Changes: All existing APIs continue to work as before
  • Seamless Migration: Existing apps can adopt new features incrementally
  • Preserved Behavior: Default behavior unchanged for existing implementations

0.1.3 - 2025-05-10 #

Fixed #

  • Bug fixes for Android 13+ compatibility
  • Improved handling of location permissions

0.1.2 - 2025-05-10 #

Added #

  • New feature to control beacon detection notifications separately from service notifications
  • Added setShowDetectionNotifications(bool) method to enable/disable detection notifications without affecting foreground service
  • Enhanced battery optimization handling to improve background performance
  • Improved error handling and logging for debugging purposes

Fixed #

  • Fixed issue with service restarts on some Android devices
  • Enhanced Bluetooth state management to handle unexpected disconnections
  • Improved memory usage in background monitoring mode

0.1.1 - 2025-05-07 #

Fixed #

  • Bug fixes for Android 13+ compatibility
  • Improved handling of location permissions
  • Enhanced stability for background monitoring
  • Fixed memory leak in beacon scanning process

0.1.0 - 2025-05-05 #

Added #

  • Initial release with support for Android and iOS
  • Background beacon monitoring with service persistence
  • Foreground beacon ranging with distance estimation
  • Support for iBeacon, AltBeacon, and Eddystone formats
  • Customizable scan settings for battery optimization
  • Notification system for region entry/exit events
  • Permission management for Bluetooth and location
  • Battery optimization handling for Android
  • Boot persistence for auto-restart after device reboot
  • Comprehensive logging system for debugging
  • Region filtering capabilities
  • Individual beacon selection and filtering
  • Stream-based API for beacon and monitoring events
  • Support for Flutter 3.3.0 and above
  • Complete Android and iOS implementations
  • Comprehensive documentation and examples

Fixed #

  • None (initial release)

Changed #

  • None (initial release)

Removed #

  • None (initial release)

Migration Guide #

From 0.1.3 to 0.1.4 #

This update introduces powerful new background service control features while maintaining full backward compatibility.

New Features Available

// New background service control methods
await beaconManager.startBackgroundService();
await beaconManager.stopBackgroundService();
await beaconManager.restartBackgroundService();
bool isRunning = await beaconManager.isBackgroundServiceRunning();
await beaconManager.setBackgroundServiceEnabled(true);
bool isEnabled = await beaconManager.isBackgroundServiceEnabled();

Migration Steps

  1. No code changes required - existing code continues to work
  2. Optional: Adopt new background service controls for better user experience
  3. Optional: Update UI to provide users with background service toggle options
  4. Recommended: Test battery optimization settings with new background-only mode

Benefits of Upgrading

  • Better Battery Life: Background-only mode uses optimized scan intervals
  • User Control: Users can independently control background vs foreground monitoring
  • Improved Reliability: Enhanced service state management and error handling
  • Better Debugging: More detailed logging for troubleshooting issues

Example Migration #

Before (still works):

// Old way - still supported
await beaconManager.startMonitoring(); // Starts both foreground and background

After (enhanced options):

// New options available
await beaconManager.startBackgroundService(); // Background only
// OR
await beaconManager.startMonitoring(); // Full monitoring (unchanged behavior)

Deprecation Notice #

No features have been deprecated in this release. All existing APIs remain fully supported.

Security #

No security-related changes in this release.

Performance #

  • Battery Usage: Background-only mode reduces battery consumption by up to 40%
  • Memory Usage: Improved memory management in service lifecycle
  • CPU Usage: Optimized scan intervals reduce CPU overhead in background mode

Testing #

This release has been tested on:

  • Android 8.0 - 14.0 (API levels 26-34)
  • iOS 12.0 - 17.2
  • Flutter 3.3.0 - 3.16.5
  • Various beacon types: iBeacon, AltBeacon, Eddystone

Known Issues #

  • Android 14: Some devices may require manual battery optimization exclusion for optimal background performance
  • iOS Background: iOS background scanning limitations apply (system-controlled intervals)
  • Xiaomi/Huawei Devices: May require additional power management settings for reliable background operation

Roadmap #

Planned features for future releases:

  • v0.1.5: Enhanced iOS background capabilities
  • v0.2.0: Beacon transmission capabilities
  • v0.2.1: Mesh networking support
  • v0.3.0: Cloud synchronization features
1
likes
140
points
40
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for handling BLE beacons with background detection and reliable monitoring.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on brux88_beacon

Packages that implement brux88_beacon