Last active
December 10, 2020 13:29
-
-
Save samuelematias/b609625fa750136c31ce158597e7b101 to your computer and use it in GitHub Desktop.
Get some informations of the device where you Flutter app is installed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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