How to check the device OS version from Flutter?
You can use dart:io
import 'dart:io' show Platform;
String osVersion = Platform.operatingSystemVersion;
Add this plugin to your pubspec device_info
Human-readable way is
if (Platform.isAndroid) {
var androidInfo = await DeviceInfoPlugin().androidInfo;
var release = androidInfo.version.release;
var sdkInt = androidInfo.version.sdkInt;
var manufacturer = androidInfo.manufacturer;
var model = androidInfo.model;
print('Android $release (SDK $sdkInt), $manufacturer $model');
// Android 9 (SDK 28), Xiaomi Redmi Note 7
}
if (Platform.isIOS) {
var iosInfo = await DeviceInfoPlugin().iosInfo;
var systemName = iosInfo.systemName;
var version = iosInfo.systemVersion;
var name = iosInfo.name;
var model = iosInfo.model;
print('$systemName $version, $name $model');
// iOS 13.1, iPhone 11 Pro Max iPhone
}
You can use platform channels for this task. In native use os specific code to get version and resend it to flutter. Here is good example with battery level
import 'dart:io' show Platform;
void main() {
// Get the operating system as a string.
String os = Platform.operatingSystem;
// Or, use a predicate getter.
if (Platform.isMacOS) {
print('is a Mac');
} else {
print('is not a Mac');
}
}
Dart SDK > dart:io > Platform
Here is the official article above, and if you want to check it is IOS or Andriod, you can use:
if (Platform.isIOS) {
print('is a IOS');
} else if (Platform.isAndroid) {
print('is a Andriod');
} else {
}
Here's how to get the iOS version
print(Platform.operatingSystem); // "ios"
print(Platform.operatingSystemVersion); // "Version 15.5 (Build 19F70)"
Caveat: The documentation says the OS version string is not suitable for parsing since it doesn't follow a standard format. However, if you test it for the versions you're interested in, you should be fine. E.g. you could test it on iOS versions 13, 14, and 15 and the string returned will always be the same for the specific versions tested. I am guessing the packages that provide version info use this string and apply some smart parsing to it to figure out the actual OS version.