create static method
Implementation
static Future<AuthDeviceInfoModel> create() async {
final deviceInfo = DeviceInfoPlugin();
String id;
String name;
if (kIsWeb) {
final _info = await deviceInfo.webBrowserInfo;
name = _info.userAgent ?? "unknown";
id = AuthenticationBasicUtils.generateUuid();
} else if (Platform.isAndroid) {
final _info = (await deviceInfo.androidInfo);
id = _info.id;
if (id == "unknown") {
id = AuthenticationBasicUtils.generateUuid();
}
name = "${_info.manufacturer} ${_info.model} ${_info.product} - ${_info.version}";
} else if (Platform.isIOS) {
final _info = (await deviceInfo.iosInfo);
id = _info.identifierForVendor ?? AuthenticationBasicUtils.generateUuid();
name = "${_info.model} ${_info.name} - ${_info.utsname.sysname} ${_info.utsname.release}";
} else {
id = AuthenticationBasicUtils.generateUuid();
name = "unknown";
}
return AuthDeviceInfoModel(
id: id,
name: name,
);
}