| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- //
- // MOUploadDeviceTool.m
- // MiMoLive
- //
- // Created by MiMo on 2025/10/10.
- //
- #import "MOUploadDeviceTool.h"
- #import <AdjustSdk/AdjustSdk.h>
- #import "HzUUIDTools.h"
- static MOUploadDeviceTool *_tool;
- @interface MOUploadDeviceTool ()
- @property (nonatomic, copy) NSString *adid;
- @end
- @implementation MOUploadDeviceTool
- ///单例
- + (MOUploadDeviceTool *)shareTool {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^
- {
- _tool = [[MOUploadDeviceTool alloc] init];
- });
-
- return _tool;
- }
- - (void)saveAdid:(NSString *)adid {
- _adid = adid;
-
- [[MODataCache sharedYYCache] setObject:adid forKey:@"kAdjustAdidStr"];
- }
- - (NSString *)adid {
- if (_adid.length > 0) {
- return _adid;
- }
-
- NSString *cacheAdidStr = (NSString *)[[MODataCache sharedYYCache] objectForKey:@"kAdjustAdidStr"];
- if (cacheAdidStr.length > 0) {
- return cacheAdidStr;
- }
-
- return [HzUUIDTools getDeviceIDInKeychain];
- }
- - (void)uploadDeviceInfo {
-
- NSString *cacheAdidStr = (NSString *)[[MODataCache sharedYYCache] objectForKey:@"kAdjustAdidStr"];
- if (cacheAdidStr.length > 0) {
- [self saveAdid:cacheAdidStr];
- [self toReportTheDeviceInfoWith:cacheAdidStr];
- return;
- }
-
- WEAKSELF
- [Adjust adidWithCompletionHandler:^(NSString * _Nullable adid) {
- if (adid.length > 0) {
- [weakSelf saveAdid:adid];
- [weakSelf toReportTheDeviceInfoWith:adid];
- } else {
- NSString *keychainId = [HzUUIDTools getDeviceIDInKeychain];
- [weakSelf saveAdid:keychainId];
- [weakSelf toReportTheDeviceInfoWith:keychainId];
- }
- }];
- }
- - (void)toReportTheDeviceInfoWith:(NSString *)adid {
-
- NSDictionary *infoDict = [MOTools getDeviceInfo];
-
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- NSString *widthStr = [NSString stringWithFormat:@"%.f",SCREENWIDTH];
- NSString *heightStr = [NSString stringWithFormat:@"%.f",SCREENHEIGHT];
- NSInteger pixelRatio = [[MODataManager objectOrNilForKey:@"PixelRatio" fromDictionary:infoDict] integerValue];
- NSString *brand = [MODataManager objectOrNilForKey:@"Brand" fromDictionary:infoDict];
- NSString *model = [MOTools getCurrentDeviceModel];
-
- [dict setObject:widthStr forKey:@"width"];
- [dict setObject:heightStr forKey:@"height"];
- [dict setObject:@(pixelRatio) forKey:@"pixelRatio"];
- [dict setObject:brand forKey:@"brand"];
- [dict setObject:model forKey:@"model"];
-
- [dict setObject:adid forKey:@"uuid"];
-
- NSString *udid = [MODataManager objectOrNilForKey:@"UDID" fromDictionary:infoDict];
- if(udid.length > 0){
- [dict setObject:udid forKey:@"udid"];
- }
-
- NSString *idfv = [MODataManager objectOrNilForKey:@"IDFV" fromDictionary:infoDict];
- if(idfv.length > 0){
- [dict setObject:idfv forKey:@"idfv"];
- }
-
- NSString *system = [NSString stringWithFormat:@"%@ %@",[MODataManager objectOrNilForKey:@"OS" fromDictionary:infoDict],[MODataManager objectOrNilForKey:@"OSVersion" fromDictionary:infoDict]];
- [dict setObject:system forKey:@"system"];
-
- // 获取系统语言
- NSArray *preferredLanguages = [NSLocale preferredLanguages];
- NSString *currentLanguage = [preferredLanguages firstObject];
- if(currentLanguage.length > 0){
- [dict setObject:currentLanguage forKey:@"language"];
- }
- // 获取系统时区
- NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
- NSString *timeZoneName = [currentTimeZone name];
- if(timeZoneName.length > 0){
- [dict setObject:timeZoneName forKey:@"timeZone"];
- }
-
- //是否越狱
- BOOL isRootMobile = [SecurityBridge isJailbroken];
- [dict setObject:@(isRootMobile) forKey:@"rootMobile"];
-
- //是否模拟器
- BOOL isVirtualMobile = [SecurityBridge isRunningInEmulator];
- [dict setObject:@(isVirtualMobile) forKey:@"virtualMobile"];
-
- [self toReportTheDeviceInfoWithDict:dict];
- }
- - (void)toReportTheDeviceInfoWithDict:(NSDictionary *)dict {
- WEAKSELF
- [kHttpManager toReportTheDeviceInfoWithParams:dict andBlock:^(id _Nonnull data, NSError * _Nonnull error) {
- if(kCode_Success){
- MOLogV(@"toReportTheDeviceInfo success");
- }
- else{
- MOLogV(@"toReportTheDeviceInfoWithDict 接口报错了");
- }
- }];
- }
- @end
|