getDeviceInfo static method

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

Implementation

static Future<Map<String, String>> getDeviceInfo() async {
  String deviceId = 'unknown';
  String deviceName = 'unknown';
  final String usertype = Platform.isAndroid ? 'Android' : 'iOS';
  try {
    if (Platform.isAndroid) {
      AndroidDeviceInfo androidInfo = await _deviceInfo.androidInfo;
      // id is often a build-specific ID. androidId was the hardware ID but it's deprecated/changed.
      // For modern Android, 'id' or 'fingerprint' is often used.
      deviceId = androidInfo.id;
      deviceName = '${androidInfo.manufacturer} ${androidInfo.model}';
      doPrint(
        'Device Info (Android): ID=$deviceId, Name=$deviceName',
      );
    } else if (Platform.isIOS) {
      IosDeviceInfo iosInfo = await _deviceInfo.iosInfo;
      deviceId = iosInfo.identifierForVendor ?? 'unknown';
      deviceName = iosInfo.name;
      doPrint('Device Info (iOS): ID=$deviceId, Name=$deviceName');
    }
  } catch (e) {
    doPrint('Error getting device info $e');
  }
  return {
    'deviceid': deviceId,
    'device_name': deviceName,
    'usertype': usertype,
  };
}