133 lines
5.1 KiB
Dart
133 lines
5.1 KiB
Dart
// import 'dart:io';
|
|
|
|
import 'package:device_info_plus/device_info_plus.dart';
|
|
import 'dart:io';
|
|
|
|
class DeviceHelper {
|
|
static Future<String> 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<Map<String, dynamic>> deviceDataList = [];
|
|
|
|
// static Future<List<Map<String, dynamic>>> getDeviceInfo() async {
|
|
// final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
|
|
|
|
// try {
|
|
// if (Platform.isAndroid) {
|
|
// AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo;
|
|
// Map<String, dynamic> 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<String, dynamic> 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<String, dynamic> deviceData = {
|
|
// 'platform': 'macOS',
|
|
// 'model': macInfo.model,
|
|
// 'version': macInfo.systemGUID,
|
|
// };
|
|
// deviceDataList.add(deviceData);
|
|
// } else if (Platform.isWindows) {
|
|
// WindowsDeviceInfo windowsInfo = await deviceInfoPlugin.windowsInfo;
|
|
// Map<String, dynamic> 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<String, dynamic> 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<String, dynamic> deviceData in deviceDataList) {
|
|
// 'Version: ${deviceData['version'] ?? deviceData['versionRelease'] ?? 'N/A'}');
|
|
// }
|
|
// }
|
|
// }
|