getInstalledVersion method

Future<InstalledAppInfo?> getInstalledVersion(
  1. String packageName
)

Get installed app version (checks both release and debug variants)

Implementation

Future<InstalledAppInfo?> getInstalledVersion(String packageName) async {
  if (!Platform.isAndroid) return null;

  try {
    // Try release package first
    var result = await _channel.invokeMethod<Map<dynamic, dynamic>>(
      'getInstalledVersion',
      {'packageName': packageName},
    );

    // If not found, try debug package
    result ??= await _channel.invokeMethod<Map<dynamic, dynamic>>(
      'getInstalledVersion',
      {'packageName': '$packageName.debug'},
    );

    if (result != null) {
      return InstalledAppInfo(
        versionName: result['versionName'] as String? ?? '',
        versionCode: (result['versionCode'] as num?)?.toInt() ?? 0,
      );
    }
    return null;
  } catch (e) {
    debugPrint('❌ getInstalledVersion error: $e');
    return null;
  }
}