|
@@ -0,0 +1,44 @@
|
|
|
+import 'dart:io';
|
|
|
+
|
|
|
+import "package:device_info/device_info.dart";
|
|
|
+import 'package:flutter/foundation.dart';
|
|
|
+import 'package:logging/logging.dart';
|
|
|
+
|
|
|
+late DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
|
|
|
+
|
|
|
+// https://gist.github.com/adamawolf/3048717
|
|
|
+late Set<String> iOSLowEndMachineCodes = <String>{
|
|
|
+ "iPhone5,1", //iPhone 5 (GSM)
|
|
|
+ "iPhone5,2", //iPhone 5 (GSM+CDMA)
|
|
|
+ "iPhone5,3", //iPhone 5C (GSM)
|
|
|
+ "iPhone5,4", //iPhone 5C (Global)
|
|
|
+ "iPhone6,1", //iPhone 5S (GSM)
|
|
|
+ "iPhone6,2", //iPhone 5S (Global)
|
|
|
+ "iPhone7,1", //iPhone 6 Plus
|
|
|
+ "iPhone7,2", //iPhone 6
|
|
|
+ "iPhone8,1", // iPhone 6s
|
|
|
+ "iPhone8,2", // iPhone 6s Plus
|
|
|
+ "iPhone8,4", // iPhone SE (GSM)
|
|
|
+ "iPhone9,1", // iPhone 7
|
|
|
+ "iPhone9,2", // iPhone 7 Plus
|
|
|
+ "iPhone9,3", // iPhone 7
|
|
|
+ "iPhone9,4", // iPhone 7 Plus
|
|
|
+ "iPhone10,1", // iPhone 8
|
|
|
+ "iPhone10,2", // iPhone 8 Plus
|
|
|
+ "iPhone10,3", // iPhone X Global
|
|
|
+ "iPhone10,4", // iPhone 8
|
|
|
+ "iPhone10,5" // iPhone 8
|
|
|
+};
|
|
|
+
|
|
|
+Future<bool> isLowSpecDevice() async {
|
|
|
+ try {
|
|
|
+ if (Platform.isIOS) {
|
|
|
+ final IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
|
|
|
+ debugPrint("ios utc name ${iosInfo.utsname.machine}");
|
|
|
+ return iOSLowEndMachineCodes.contains(iosInfo.utsname.machine);
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ Logger("device_info").severe("deviceSpec check failed", e);
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|