getUserTrackingBasicInfo static method

Future<Map<String, dynamic>> getUserTrackingBasicInfo(
  1. String? userAgent
)

Implementation

static Future<Map<String, dynamic>> getUserTrackingBasicInfo(
    String? userAgent) async {
  try {
    DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
    String uniqueId = '';
    String ipAddress = '';
    final networkInfo = await NetworkInfo().getWifiIP();
    String platformVersion = '';

    if (Platform.isAndroid) {
      AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
      uniqueId = androidInfo.id;
      ipAddress = androidInfo.id;
      platformVersion = androidInfo.version.codename;
    } else if (Platform.isIOS) {
      IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
      uniqueId = iosInfo.identifierForVendor ?? '';
      platformVersion = iosInfo.systemVersion;
    }

    ipAddress = networkInfo ?? '';
    userAgent = userAgent;
    final platform = Platform.operatingSystem;

    final packageInfo = await PackageInfo.fromPlatform();

    final info = {
      'anonymous_id': uniqueId,
      'app_build_version': packageInfo.buildNumber,
      'app_bundle': packageInfo.packageName,
      'app_version': packageInfo.version,
      'device_id': uniqueId,
      'ip': ipAddress,
      'platform': platform,
      'platform_version': platformVersion,
      'user_agent': userAgent,
    };

    return info;
  } catch (e) {
    // Handle error if necessary
    print('Error fetching user tracking basic info: $e');
    return {}; // Return empty map in case of error
  }
}