initialize method
Initializes this FlutterReactiveBle instance and its platform-specific counterparts.
The initialization is performed automatically the first time any BLE operation is triggered.
Implementation
Future<void> initialize() async {
if (_initialization == null) {
_debugLogger = DebugLogger(
'REACTIVE_BLE',
print,
);
if (Platform.isAndroid || Platform.isIOS) {
ReactiveBlePlatform.instance =
const ReactiveBleMobilePlatformFactory().create(
logger: _debugLogger,
);
}
_blePlatform = ReactiveBlePlatform.instance;
_initialization ??= _blePlatform.initialize();
_connectedDeviceOperator = ConnectedDeviceOperationImpl(
blePlatform: _blePlatform,
);
_deviceScanner = DeviceScannerImpl(
blePlatform: _blePlatform,
platformIsAndroid: () => Platform.isAndroid,
delayAfterScanCompletion: Future<void>.delayed(
const Duration(milliseconds: 300),
),
addToScanRegistry: scanRegistry.add,
);
_deviceConnector = DeviceConnectorImpl(
blePlatform: _blePlatform,
deviceIsDiscoveredRecently: scanRegistry.deviceIsDiscoveredRecently,
deviceScanner: _deviceScanner,
delayAfterScanFailure: const Duration(seconds: 10),
);
await _initialization;
}
}