initDeviceInfo method

dynamic initDeviceInfo()

Implementation

initDeviceInfo() async {
  try {
    DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
    if (PlatformUtils.isAndroid()) {
      AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
      _deviceCompany = androidInfo.brand;
      _deviceModel = androidInfo.model;
      _deviceOS = "Android ${androidInfo.version.release}";
    } else if (PlatformUtils.isIos()) {
      IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
      _deviceCompany = "Apple";
      _deviceModel = iosDeviceInfo.model;
      _deviceOS = iosDeviceInfo.systemVersion;
    } else {
      WebBrowserInfo webBrowserInfo = await deviceInfo.webBrowserInfo;
      _log("webBrowserInfo ${webBrowserInfo.toMap()}");
      _deviceCompany = webBrowserInfo.platform;
      _deviceModel = webBrowserInfo.browserName.name;
      PrefUtils.setString(SPKey.keyStringDevice, _deviceModel);
      _deviceOS = webBrowserInfo.appVersion;
      String subStrKey = ")"; // 只提取第一个括号前的数据,限制长度为40个字符
      if (TextUtils.isNotEmpty(_deviceOS) && _deviceOS!.contains(subStrKey)) {
        _deviceOS = _deviceOS!.substring(0, _deviceOS!.indexOf(subStrKey)) + subStrKey;
        if (_deviceOS!.length > 20) {
          _deviceOS = _deviceOS!.substring(0, 20);
        }
      }
    }
  } catch (e) {
    // ignore
  }
  _log("initDeviceInfo \n 设备厂商: $_deviceCompany \n 设备型号: $_deviceModel \n 设备操作系统: $_deviceOS");
}