base_request.dart 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import 'dart:io';
  2. import 'package:atmob_channel_reader/atmob_channel_reader.dart';
  3. import 'package:electronic_assistant/device/atmob_platform_info.dart';
  4. import 'package:electronic_assistant/utils/app_info_util.dart';
  5. import 'package:electronic_assistant/device/device_info_util.dart';
  6. import 'package:electronic_assistant/utils/mmkv_util.dart';
  7. import 'package:flutter/cupertino.dart';
  8. import 'package:json_annotation/json_annotation.dart';
  9. import 'package:uuid/uuid.dart';
  10. part 'base_request.g.dart';
  11. @JsonSerializable()
  12. class BaseRequest {
  13. /// 平台类型: 1-Android 2-iOS 3-移动H5 4-PC_WEB 5-微信小程序 6-微信小游戏
  14. /// 7-微信公众号 8-抖音小程序 9-抖音小游戏 10-鸿蒙APP
  15. @JsonKey(name: "appPlatform")
  16. late int appPlatform = 0;
  17. /// 操作系统:android、ios、mac、windows、linux、harmony
  18. @JsonKey(name: "os")
  19. late String os = "unknown";
  20. @JsonKey(name: "osVersion")
  21. late String osVersion;
  22. /// 包信息
  23. @JsonKey(name: "packageName")
  24. String? packageName;
  25. @JsonKey(name: "appVersionName")
  26. String? appVersionName;
  27. @JsonKey(name: "appVersionCode")
  28. int? appVersionCode;
  29. /// 渠道信息, iOS没有渠道信息, Android通过渠道包工具获取
  30. @JsonKey(name: "channelName")
  31. String? channelName;
  32. @JsonKey(name: "appId")
  33. int? appId;
  34. @JsonKey(name: "tgPlatform")
  35. int? tgPlatform;
  36. /// 设备信息
  37. /// Android特有
  38. @JsonKey(name: "oaid")
  39. String? oaid;
  40. @JsonKey(name: "aaid")
  41. String? aaid;
  42. @JsonKey(name: "androidId")
  43. String? androidId;
  44. @JsonKey(name: "imei")
  45. String? imei;
  46. @JsonKey(name: "simImei0")
  47. String? simImei0;
  48. @JsonKey(name: "simImei1")
  49. String? simImei1;
  50. @JsonKey(name: "mac")
  51. String? mac;
  52. /// iOS特有
  53. @JsonKey(name: "idfa")
  54. String? idfa;
  55. @JsonKey(name: "idfv")
  56. String? idfv;
  57. /// 公共设备信息
  58. @JsonKey(name: "machineId")
  59. String? machineId; //给web使用
  60. @JsonKey(name: "brand")
  61. String? brand;
  62. @JsonKey(name: "model")
  63. String? model;
  64. @JsonKey(name: "wifiName")
  65. String? wifiName;
  66. /// 地理位置信息
  67. @JsonKey(name: "region")
  68. String? region;
  69. @JsonKey(name: "locLng")
  70. double? locLng;
  71. @JsonKey(name: "locLat")
  72. double? locLat;
  73. BaseRequest() {
  74. initPlatformOS();
  75. initPackageInfo();
  76. initChannelInfo();
  77. initDeviceInfo();
  78. }
  79. Map<String, dynamic> toJson() => _$BaseRequestToJson(this);
  80. void initPlatformOS() {
  81. if (Platform.isAndroid) {
  82. appPlatform = 1;
  83. os = "android";
  84. } else if (Platform.isIOS) {
  85. appPlatform = 2;
  86. os = "ios";
  87. } else if (Platform.isMacOS) {
  88. os = "mac";
  89. } else if (Platform.isWindows) {
  90. os = "windows";
  91. } else if (Platform.isLinux) {
  92. os = "linux";
  93. } else if (Platform.isFuchsia) {
  94. os = "fuchsia";
  95. }
  96. osVersion = Platform.operatingSystemVersion;
  97. debugPrint("os: $os, osVersion: $osVersion");
  98. }
  99. void initPackageInfo() {
  100. packageName = appInfoUtil.packageName;
  101. appVersionName = appInfoUtil.appVersionName;
  102. appVersionCode = appInfoUtil.appVersionCode;
  103. }
  104. void initChannelInfo() {
  105. channelName = atmobPlatformInfo.channelName;
  106. appId = atmobPlatformInfo.appId;
  107. tgPlatform = atmobPlatformInfo.tgPlatform;
  108. }
  109. void initDeviceInfo() {
  110. oaid = atmobPlatformInfo.oaid;
  111. aaid = atmobPlatformInfo.aaid;
  112. androidId = atmobPlatformInfo.androidId;
  113. imei = atmobPlatformInfo.imei;
  114. simImei0 = atmobPlatformInfo.simImei0;
  115. simImei1 = atmobPlatformInfo.simImei1;
  116. mac = atmobPlatformInfo.mac;
  117. idfa = atmobPlatformInfo.idfa;
  118. idfv = atmobPlatformInfo.idfv;
  119. machineId = atmobPlatformInfo.machineId;
  120. brand = atmobPlatformInfo.brand;
  121. model = atmobPlatformInfo.model;
  122. wifiName = atmobPlatformInfo.wifiName;
  123. region = atmobPlatformInfo.region;
  124. locLng = atmobPlatformInfo.locLng;
  125. locLat = atmobPlatformInfo.locLat;
  126. }
  127. }