config_services_injection.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:device_info_plus/device_info_plus.dart';
  2. import 'package:package_info_plus/package_info_plus.dart';
  3. import 'package:shared/utils/device_utils.dart';
  4. import 'package:shared/utils/log_utils.dart';
  5. import 'app_config_service.dart';
  6. /*
  7. 全局服务 Service 的初始化入口
  8. 1. 初始化 AppPackageInfo 插件,获取应用相关信息。
  9. 2. 初始化 DeviceInfo 插件,获取设备相关信息。
  10. 全局一些服务的注入与信息的保存。
  11. 注意:最好是用户同意了隐私协议之后再初始化
  12. */
  13. class ConfigServicesInjection {
  14. /// android 设备信息
  15. static AndroidDeviceInfo? androidDeviceInfo;
  16. /// ios 设备信息
  17. static IosDeviceInfo? iosDeviceInfo;
  18. /// 包信息
  19. static PackageInfo? packageInfo;
  20. /// 是否 release 包(生产环境)
  21. static bool get isRelease => const bool.fromEnvironment("dart.vm.product");
  22. /// init
  23. static Future init() async {
  24. Log.d('----ConfigServicesInjection------start-----');
  25. // device_info_plus插件获取设备信息
  26. DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  27. if (DeviceUtils.isIOS) {
  28. ConfigServicesInjection.iosDeviceInfo = await deviceInfoPlugin.iosInfo;
  29. } else if (DeviceUtils.isAndroid) {
  30. ConfigServicesInjection.androidDeviceInfo = await deviceInfoPlugin.androidInfo;
  31. }
  32. // package_info 插件获取到App的包信息
  33. ConfigServicesInjection.packageInfo = await PackageInfo.fromPlatform();
  34. // 一些配置信息的全局单例保存 (国际化、版本信息、设备信息、主题(暗黑/明亮))
  35. // Get.put<ConfigService>(ConfigService());
  36. }
  37. // 获取当前Android设备的Android版本
  38. static int getAndroidSdkInt() {
  39. if (DeviceUtils.isAndroid) {
  40. return androidDeviceInfo?.version.sdkInt ?? -1;
  41. } else {
  42. return -1;
  43. }
  44. }
  45. }