You can only call await FTMS.scanForBluetoothDevices(); once:
await FTMS.scanForBluetoothDevices();
Stream<List<ScanResult>> scanResults = FTMS.scanResults;
scanResults.listen((results) {
developer.log('Scan results ${results.toString()}');
If there are no results and you call await FTMS.scanForBluetoothDevices(); again. XCode shows only one trigger of the Bluetooth scanning:

I think that the current default timeout of 4 seconds is too short.
FlutterBluePlus has a on option to scan continuously:
FlutterBluePlus.startScan(continuousUpdates: true);
Calling FlutterBluePlus.stopScan() will then stop the scanning.
You can only call
await FTMS.scanForBluetoothDevices();once:If there are no results and you call
await FTMS.scanForBluetoothDevices();again. XCode shows only one trigger of the Bluetooth scanning:I think that the current default timeout of 4 seconds is too short.
FlutterBluePlus has a on option to scan continuously:
Calling
FlutterBluePlus.stopScan()will then stop the scanning.