getInstance static method

Future<DeviceInfo> getInstance()

获取设备信息单例

Implementation

static Future<DeviceInfo> getInstance() async {
  if (_instance != null) return _instance!;

  try {
    final deviceId = await _getDeviceId();
    final deviceModel = await _getDeviceModel();
    final platform = _getPlatform();
    final osVersion = await _getOSVersion();
    final appVersion = await _getAppVersion();
    final appBuildNumber = await _getAppBuildNumber();
    final additionalInfo = await _getAdditionalInfo();

    _instance = DeviceInfo(
      deviceId: deviceId,
      deviceModel: deviceModel,
      platform: platform,
      osVersion: osVersion,
      appVersion: appVersion,
      appBuildNumber: appBuildNumber,
      additionalInfo: additionalInfo,
    );

    return _instance!;
  } catch (e) {
    // 返回默认值
    _instance = DeviceInfo(
      deviceId: 'unknown_${DateTime.now().millisecondsSinceEpoch}',
      deviceModel: 'Unknown Device',
      platform: _getPlatform(),
      osVersion: 'Unknown',
      appVersion: '1.0.0',
      appBuildNumber: '1',
    );
    return _instance!;
  }
}