getDeviceInfo function

Future<Map<String, String>> getDeviceInfo()

Implementation

Future<Map<String, String>> getDeviceInfo() async {
  final deviceInfoPlugin = DeviceInfoPlugin();

  if (Platform.isAndroid) {
    final info = await deviceInfoPlugin.androidInfo;
    return {'deviceId': info.id, 'deviceName': info.model};
  }
  if (Platform.isIOS) {
    final info = await deviceInfoPlugin.iosInfo;
    return {
      'deviceId': info.identifierForVendor ?? 'unknown-ios',
      'deviceName': info.utsname.machine,
    };
  }
  if (Platform.isMacOS) {
    final info = await deviceInfoPlugin.macOsInfo;
    return {
      'deviceId': info.systemGUID ?? 'unknown-macos',
      'deviceName': '${info.computerName} (macOS ${info.osRelease})',
    };
  }
  if (Platform.isWindows) {
    final info = await deviceInfoPlugin.windowsInfo;
    return {
      'deviceId': info.deviceId,
      'deviceName': '${info.computerName} (Windows)',
    };
  }
  if (Platform.isLinux) {
    final info = await deviceInfoPlugin.linuxInfo;
    return {
      'deviceId': info.machineId ?? 'unknown-linux',
      'deviceName': info.prettyName,
    };
  }

  return {
    'deviceId': 'device-${DateTime.now().millisecondsSinceEpoch}',
    'deviceName': 'Unknown Platform',
  };
}