scanAllDevices method
Implementation
Future<List<NASDeviceInfo>> scanAllDevices({
int timeout = 30,
bool includeAllServices = true,
}) async {
final List<NASDeviceInfo> allDevices = [];
final Completer<List<NASDeviceInfo>> completer = Completer();
// 添加默认设备
// try {
// final defaultDevice = await NasDeviceConfig.getCurrentNasDevice();
// allDevices.add(defaultDevice);
// print('已添加默认设备: ${defaultDevice.sn}');
// } catch (e) {
// print('添加默认设备失败: $e');
// }
try {
await start(
(devices) {
// 合并所有发现的设备,包括默认设备
final uniqueDevices = devices.toSet().toList();
if (!completer.isCompleted) {
completer.complete(uniqueDevices);
}
},
timeout: timeout,
);
} catch (e) {
print('扫描失败: $e');
if (!completer.isCompleted) {
completer.complete(allDevices);
}
}
return completer.future;
}