In an android app, we can use the android.os.Build.VERSION.SDK_INT
to get the SDK version of the software currently running on a hardware device. How to do the same in a flutter app so that I can show or hide a widget based on the android build version?
Asked
Active
Viewed 140 times
1

Hasan El-Hefnawy
- 1,249
- 1
- 14
- 20
3 Answers
2
Use device_info plugin to get the SDK version:
var info = await DeviceInfoPlugin().androidInfo;
var sdk = info.version.sdkInt;
And then use it like
Column(
children: [
if (sdk > 24) Text('Good'), // Prints only for devices running API > 24
Text('Morning')
],
)
If you don't want to use if
you can check this answer for other options.

CopsOnRoad
- 237,138
- 77
- 654
- 440
1
You can use Device Info Package to Get Device information
https://pub.dev/packages/device_info
You can get all of this information
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');

Ravindra Vala
- 21
- 2
0
CopsOnRoad's answer is good, however, when I only need the Build.VERSION.SDK_INT
from Android, and I already have MethodChannel
implemented for other Android functionality that I need in Flutter, I prefer not to add an extra plugin.
I simply add the following (Java) code:
case METHOD_GET_SDK_INT:
result.success(Build.VERSION.SDK_INT);
break;
in the MethodCall handler:
public class MainActivity extends FlutterActivity {
...
private static final String METHOD_GET_SDK_INT = "getSdkInt";
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler(
(call, result) -> {
switch (call.method) {
...
// New code for returning the Android SDK version
case METHOD_GET_SDK_INT:
result.success(Build.VERSION.SDK_INT);
break;
...
Then, in Dart, I use:
final int _androidSdkInt = await platform.invokeMethod('getSdkInt');

TechAurelian
- 5,561
- 5
- 50
- 65