getInstalledVersion method
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;
}
}