2020-09-10 02:13:22 +06:30
|
|
|
import 'package:device_info/device_info.dart';
|
|
|
|
|
import 'dart:io' show Platform;
|
|
|
|
|
|
|
|
|
|
class DevInfo {
|
2021-09-10 14:27:38 +06:30
|
|
|
bool? isAndroid;
|
|
|
|
|
bool? isIOS;
|
|
|
|
|
String? deviceID;
|
|
|
|
|
String? id;
|
|
|
|
|
String? model;
|
2020-09-10 02:13:22 +06:30
|
|
|
|
2021-09-10 14:27:38 +06:30
|
|
|
static DevInfo? _instance;
|
2020-09-10 02:13:22 +06:30
|
|
|
|
|
|
|
|
static Future<DevInfo> getDevInfo() async {
|
|
|
|
|
if (_instance != null) return Future.value(_instance);
|
|
|
|
|
|
|
|
|
|
_instance = DevInfo();
|
|
|
|
|
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
|
|
|
|
|
|
|
|
|
if (Platform.isAndroid) {
|
|
|
|
|
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
2021-09-10 14:27:38 +06:30
|
|
|
_instance!.deviceID = androidInfo.androidId;
|
|
|
|
|
_instance!.id = androidInfo.id;
|
|
|
|
|
_instance!.model = androidInfo.model;
|
2020-09-10 02:13:22 +06:30
|
|
|
} else if (Platform.isIOS) {
|
|
|
|
|
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
|
2021-09-10 14:27:38 +06:30
|
|
|
_instance!.deviceID = iosDeviceInfo.identifierForVendor;
|
|
|
|
|
_instance!.id = iosDeviceInfo.utsname.release;
|
|
|
|
|
_instance!.model = iosDeviceInfo.model;
|
2020-09-10 02:13:22 +06:30
|
|
|
}
|
|
|
|
|
return Future.value(_instance);
|
|
|
|
|
}
|
|
|
|
|
}
|