12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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>(ConfigService());
- }
- // 获取当前Android设备的Android版本
- static int getAndroidSdkInt() {
- if (DeviceUtils.isAndroid) {
- return androidDeviceInfo?.version.sdkInt ?? -1;
- } else {
- return -1;
- }
- }
- }
|