// import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; import 'dart:io'; class DeviceHelper { static Future getDeviceFingerprint() async { final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); var deviceData; try { if (Platform.isAndroid) { // Fetch Android-specific device information AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo; deviceData = androidInfo.toMap(); // Convert to a map for easier access // Log.print('deviceData: ${jsonEncode(deviceData)}'); } else if (Platform.isIOS) { // Fetch iOS-specific device information IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo; deviceData = iosInfo.toMap(); // Convert to a map for easier access } else { throw UnsupportedError('Unsupported platform'); } // Extract relevant device information final String deviceId = Platform.isAndroid ? deviceData['androidId'] ?? deviceData['serialNumber'] ?? 'unknown' : deviceData['identifierForVendor'] ?? 'unknown'; final String deviceModel = deviceData['model'] ?? 'unknown'; final String osVersion = Platform.isAndroid ? deviceData['version']['release'] ?? 'unknown' : deviceData['systemVersion'] ?? 'unknown'; // Log the extracted information // Generate and return the encrypted fingerprint final String fingerprint = '${deviceId}_${deviceModel}_$osVersion'; // print(EncryptionHelper.instance.encryptData(fingerprint)); return (fingerprint); } catch (e) { throw Exception('Failed to generate device fingerprint'); } } } // class DeviceInfoPlus { // static List> deviceDataList = []; // static Future>> getDeviceInfo() async { // final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); // try { // if (Platform.isAndroid) { // AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo; // Map deviceData = { // 'platform': 'Android', // 'brand': androidInfo.brand, // 'model': androidInfo.model, // 'androidId': androidInfo.device, // 'versionRelease': androidInfo.version.release, // 'sdkVersion': androidInfo.version.sdkInt, // 'manufacturer': androidInfo.manufacturer, // 'isPhysicalDevice': androidInfo.isPhysicalDevice, // 'serialNumber': androidInfo.serialNumber, // 'fingerprint': androidInfo.fingerprint, // 'type': androidInfo.type, // 'data': androidInfo.data, // 'version': androidInfo.version, // 'tags': androidInfo.tags, // 'display': androidInfo.display, // }; // deviceDataList.add(deviceData); // } else if (Platform.isIOS) { // IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo; // Map deviceData = { // 'brand': 'Apple', // 'model': iosInfo.model, // 'systemName': iosInfo.systemName, // 'systemVersion': iosInfo.systemVersion, // 'utsname': iosInfo.utsname, // 'isPhysicalDevice': iosInfo.isPhysicalDevice, // 'identifierForVendor': iosInfo.identifierForVendor, // 'name': iosInfo.name, // 'localizedModel': iosInfo.localizedModel, // }; // deviceDataList.add(deviceData); // } else if (Platform.isMacOS) { // MacOsDeviceInfo macInfo = await deviceInfoPlugin.macOsInfo; // Map deviceData = { // 'platform': 'macOS', // 'model': macInfo.model, // 'version': macInfo.systemGUID, // }; // deviceDataList.add(deviceData); // } else if (Platform.isWindows) { // WindowsDeviceInfo windowsInfo = await deviceInfoPlugin.windowsInfo; // Map deviceData = { // 'platform': 'Windows', // 'manufacturer': windowsInfo.computerName, // 'version': windowsInfo.majorVersion, // 'deviceId': windowsInfo.deviceId, // 'userName': windowsInfo.userName, // 'productName': windowsInfo.productName, // 'installDate': windowsInfo.installDate, // 'productId': windowsInfo.productId, // 'numberOfCores': windowsInfo.numberOfCores, // 'systemMemoryInMegabytes': windowsInfo.systemMemoryInMegabytes, // }; // deviceDataList.add(deviceData); // } else if (Platform.isLinux) { // LinuxDeviceInfo linuxInfo = await deviceInfoPlugin.linuxInfo; // Map deviceData = { // 'platform': 'Linux', // 'manufacturer': linuxInfo.name, // 'version': linuxInfo.version, // }; // deviceDataList.add(deviceData); // } // } catch (e) { // } // return deviceDataList; // } // // Method to print all device data // static void printDeviceInfo() { // for (Map deviceData in deviceDataList) { // 'Version: ${deviceData['version'] ?? deviceData['versionRelease'] ?? 'N/A'}'); // } // } // }