getDeviceInfo static method

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

Implementation

static FutureEither<Map<String, String>> getDeviceInfo() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isAndroid) {
    var androidInfo = await deviceInfo.androidInfo;
    return right({
      'device': androidInfo.model,
      'os': 'Android ${androidInfo.version.sdkInt}',
      'osVersion': androidInfo.version.release,
      'manufacturer': androidInfo.manufacturer,
      'brand': androidInfo.brand,
      'model': androidInfo.model,
      'emu': androidInfo.isPhysicalDevice ? '0' : '1',
      'identity': base64UrlEncode(utf8.encode(androidInfo.fingerprint)),
    });
  } else if (Platform.isIOS) {
    var iosInfo = await deviceInfo.iosInfo;
    return right({
      'device': iosInfo.model ?? 'iPhone',
      'os': 'iOS ${iosInfo.systemName}',
      'osVersion': iosInfo.systemVersion ?? '0.0',
      'manufacturer': 'Apple',
      'brand': 'Apple',
      'model': iosInfo.model ?? 'iPhone',
      'emu': iosInfo.isPhysicalDevice ? '0' : '1',
      'identity': base64UrlEncode(utf8.encode(iosInfo.identifierForVendor ?? 'none')),
    });
  }
  return left('Unsupported platform');
}