import 'package:device_info_plus/device_info_plus.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:get/get.dart'; import 'package:shared/utils/device_utils.dart'; import 'package:shared/utils/log_utils.dart'; import 'app_config_service.dart'; /* 全局服务 Service 的初始化入口 1. 初始化 AppPackageInfo 插件,获取应用相关信息。 2. 初始化 DeviceInfo 插件,获取设备相关信息。 全局一些服务的注入与信息的保存。 注意:最好是用户同意了隐私协议之后再初始化 */ class ConfigServicesInjection { /// android 设备信息 static AndroidDeviceInfo? androidDeviceInfo; /// ios 设备信息 static IosDeviceInfo? iosDeviceInfo; /// 包信息 static PackageInfo? packageInfo; /// 是否 release 包(生产环境) static bool get isRelease => const bool.fromEnvironment("dart.vm.product"); /// init static Future init() async { Log.d('----ConfigServicesInjection------start-----'); // device_info_plus插件获取设备信息 DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); if (DeviceUtils.isIOS) { ConfigServicesInjection.iosDeviceInfo = await deviceInfoPlugin.iosInfo; } else if (DeviceUtils.isAndroid) { ConfigServicesInjection.androidDeviceInfo = await deviceInfoPlugin.androidInfo; } // package_info 插件获取到App的包信息 ConfigServicesInjection.packageInfo = await PackageInfo.fromPlatform(); // 一些配置信息的全局单例保存 (国际化、版本信息、设备信息、主题(暗黑/明亮)) Get.put(ConfigService()); } // 获取当前Android设备的Android版本 static int getAndroidSdkInt() { if (DeviceUtils.isAndroid) { return androidDeviceInfo?.version.sdkInt ?? -1; } else { return -1; } } }