initPlatform method
Implementation
Future<dynamic> initPlatform() async {
WidgetsFlutterBinding.ensureInitialized();
if (!_hasInit) {
_country = ui.window.locale.countryCode ?? '';
_language = ui.window.locale.languageCode;
_direction = Bidi.isRtlLanguage(ui.window.locale.languageCode) ? 1 : 0;
var deviceInfoPlugin = DeviceInfoPlugin();
var deviceData = <String, dynamic>{};
final info = await PackageInfo.fromPlatform();
try {
if (Platform.isAndroid) {
deviceData = _readAndroidBuildData(await deviceInfoPlugin.androidInfo);
_os = 'android';
_apiLevel = deviceData['version.sdkInt'] ?? 0;
_osVersion = deviceData['version.release'] ?? '0';
_device = deviceData['device'] ?? '';
_model = deviceData['model'] ?? '';
_appName = info.appName;
_appVersion = info.version;
_packageName = info.packageName;
} else if (Platform.isIOS) {
deviceData = _readIosDeviceInfo(await deviceInfoPlugin.iosInfo);
_os = 'ios';
_osVersion = deviceData['systemVersion'] ?? '1.0';
_device = deviceData['utsname.machine'] ?? '';
_model = deviceData['model'] ?? '';
_deviceId = deviceData['id'] ?? '';
_codeName = deviceData['codename'] ?? '';
_appName = info.appName;
_appVersion = info.version;
_packageName = info.packageName;
} else if (Platform.isMacOS) {
deviceData = _readMacOsDeviceInfo(await deviceInfoPlugin.macOsInfo);
_os = 'macos';
_osVersion = deviceData['osRelease'] ?? '1.0';
_model = deviceData['model'] ?? '';
} else if (Platform.isWindows) {
deviceData = _readWindowsDeviceInfo(await deviceInfoPlugin.windowsInfo);
}
_hasInit = true;
} on PlatformException {
LogUtils.e(_kTag, 'Failed to get platform version.');
_hasInit = false;
}
}
}