Skip to content

Instantly share code, notes, and snippets.

@samuelematias
Last active December 10, 2020 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samuelematias/b609625fa750136c31ce158597e7b101 to your computer and use it in GitHub Desktop.
Save samuelematias/b609625fa750136c31ce158597e7b101 to your computer and use it in GitHub Desktop.
Get some informations of the device where you Flutter app is installed.
import 'dart:io';
import 'package:device_info/device_info.dart'; //https://pub.dev/packages/device_info
class DeviceInfo {
Future<String> get deviceModel async {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
final String manufacturer = androidInfo.manufacturer;
final String model = androidInfo.model;
return '$manufacturer $model'; // Xiaomi Redmi Note 7
} else if (Platform.isIOS) {
final IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
final String device = iosInfo.utsname.machine; //List with all iPhone Models X iPhone IDs: https://everymac.com/systems/apple/iphone/index-iphone-specs.html
final String model = iosInfo.model;
return '$device $model'; // iPhone11,6 iPhone
} else {
return 'Unknown platform and Device model';
}
}
Future<String> get osVersion async {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
final String release = androidInfo.version.release;
final int sdkInt = androidInfo.version.sdkInt;
return 'Android $release (SDK $sdkInt)'; // Android 10 (SDK 29)
} else if (Platform.isIOS) {
final IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
final String systemName = iosInfo.systemName;
final String version = iosInfo.systemVersion;
return '$systemName $version'; // iOS 14.2
} else {
return 'Unknown platform and OS version';
}
}
Future<String> get aboutDevice async {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
final String release = androidInfo.version.release;
final int sdkInt = androidInfo.version.sdkInt;
final String manufacturer = androidInfo.manufacturer;
final String model = androidInfo.model;
final String finalModel = '$manufacturer $model'.removeOnlySymbols;
return 'Android $release (SDK $sdkInt), $finalModel'; // Android 10 (SDK 29), Xiaomi Redmi Note 7
} else if (Platform.isIOS) {
final IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
final String systemName = iosInfo.systemName;
final String version = iosInfo.systemVersion;
final String device = iosInfo.utsname.machine;
final String model = iosInfo.model;
return '$systemName $version, $device $model'; // iOS 14.2, iPhone11,6 iPhone
} else {
return 'Unknown platform and Device';
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment