current static method

DeviceInfo current(
  1. String deviceId
)

Get current device info - called fresh each time. Note: deviceId is async, so use DeviceInfo.fetchCurrent() for full info.

Implementation

static DeviceInfo current(String deviceId) {
  // Architecture
  String architecture;
  if (Platform.isIOS || Platform.isMacOS) {
    // ARM64 on Apple Silicon, x86_64 on Intel
    architecture = 'arm64'; // Assume ARM64 for modern devices
  } else if (Platform.isAndroid) {
    architecture = 'arm64'; // Most Android devices are ARM64
  } else {
    architecture = 'x86_64';
  }

  // Platform and device type
  String platformName;
  String deviceType;
  String formFactor;
  String modelIdentifier;
  String modelName;

  if (Platform.isIOS) {
    platformName = 'iOS';
    deviceType = 'mobile';
    formFactor = 'phone';
    modelIdentifier = 'iPhone'; // Would need platform channel for real value
    modelName = 'iPhone';
  } else if (Platform.isAndroid) {
    platformName = 'android';
    deviceType = 'mobile';
    formFactor = 'phone';
    modelIdentifier = 'Android'; // Would need platform channel for real value
    modelName = 'Android Device';
  } else if (Platform.isMacOS) {
    platformName = 'macOS';
    deviceType = 'desktop';
    formFactor = 'desktop';
    modelIdentifier = 'Mac';
    modelName = 'Mac';
  } else if (Platform.isLinux) {
    platformName = 'linux';
    deviceType = 'desktop';
    formFactor = 'desktop';
    modelIdentifier = 'Linux';
    modelName = 'Linux Device';
  } else if (Platform.isWindows) {
    platformName = 'windows';
    deviceType = 'desktop';
    formFactor = 'desktop';
    modelIdentifier = 'Windows';
    modelName = 'Windows Device';
  } else {
    platformName = 'unknown';
    deviceType = 'unknown';
    formFactor = 'unknown';
    modelIdentifier = 'Unknown';
    modelName = 'Unknown Device';
  }

  return DeviceInfo(
    deviceId: deviceId,
    modelIdentifier: modelIdentifier,
    modelName: modelName,
    architecture: architecture,
    osVersion: Platform.operatingSystemVersion,
    platform: platformName,
    deviceType: deviceType,
    formFactor: formFactor,
    totalMemory: 0, // Would need platform channel
    processorCount: Platform.numberOfProcessors,
  );
}