getDeviceInformation method
Implementation
Future<Map<String, String>> getDeviceInformation() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
String deviceId = "";
String osVersion = "";
String deviceType = "PC";
String deviceModel = "";
if (kIsWeb) {
WebBrowserInfo info = await deviceInfo.webBrowserInfo;
deviceId = _getRandomId().toString();
osVersion = "${info.platform} ${_getRandomId()}";
deviceType = "PC";
deviceModel = info.browserName.toString();
}
if (!kIsWeb && Platform.isAndroid) {
AndroidDeviceInfo info = await deviceInfo.androidInfo;
deviceId = info.id;
osVersion = info.version.release;
deviceModel = info.model;
} else if (!kIsWeb && Platform.isIOS) {
IosDeviceInfo info = await deviceInfo.iosInfo;
deviceId = info.identifierForVendor ?? _getRandomId().toString();
osVersion = info.systemName ?? "UNKNOWN";
deviceModel = info.model ?? "UNKNOWN";
} else {
deviceId = _getRandomId().toString();
osVersion = _getRandomId().toString();
deviceModel = _getRandomId().toString();
}
bool isWebApple = (defaultTargetPlatform == TargetPlatform.macOS ||
defaultTargetPlatform == TargetPlatform.iOS);
String deviceOS = (!kIsWeb && Platform.isAndroid)
? "ANDROID"
: (!kIsWeb && Platform.isIOS)
? "IOS"
: (!kIsWeb && Platform.isWindows)
? "WINDOWS"
: (!kIsWeb && isWebApple)
? "MAC"
: (kIsWeb && isWebApple)
? "MACOS"
: "WEBOS";
DeviceInfo.deviceid = deviceId;
DeviceInfo.devicetype = deviceType;
DeviceInfo.deviceos = deviceOS;
DeviceInfo.osversion = osVersion;
DeviceInfo.devicemodel = deviceModel;
Map<String, String> params = {
'deviceid': DeviceInfo.deviceid,
"devicetype": deviceType,
"providerid": providerid,
"deviceos": deviceOS,
"appversion": appversion,
"osversion": osVersion,
"timestamp": DateTime.now().millisecondsSinceEpoch.toString(),
};
return params;
}