AJPushDeviceInfo.m 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. //
  2. // DeviceInfo.m
  3. // AJPushSDK
  4. //
  5. // Created by Black on 2021/2/2.
  6. // Copyright © 2018 anji-plus 安吉加加信息技术有限公司 http://www.anji-plus.com. All rights reserved.
  7. //
  8. #import "AJPushDeviceInfo.h"
  9. #import <UIKit/UIKit.h>
  10. #import <sys/utsname.h>
  11. struct utsname ajpushSystemInfo;
  12. //
  13. @implementation AJPushDeviceInfo
  14. + (NSString *)getBrandInfo {
  15. uname(&ajpushSystemInfo);
  16. NSString *deviceModel = [NSString stringWithCString:ajpushSystemInfo.machine encoding:NSUTF8StringEncoding];
  17. if ([deviceModel isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
  18. if ([deviceModel isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
  19. if ([deviceModel isEqualToString:@"iPhone3,3"]) return @"iPhone 4";
  20. if ([deviceModel isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
  21. if ([deviceModel isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
  22. if ([deviceModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
  23. if ([deviceModel isEqualToString:@"iPhone5,3"]) return @"iPhone 5c";
  24. if ([deviceModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5c";
  25. if ([deviceModel isEqualToString:@"iPhone6,1"]) return @"iPhone 5s";
  26. if ([deviceModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5s";
  27. if ([deviceModel isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
  28. if ([deviceModel isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
  29. if ([deviceModel isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
  30. if ([deviceModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
  31. if ([deviceModel isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
  32. if ([deviceModel isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
  33. if ([deviceModel isEqualToString:@"iPhone9,2"]) return @"iPhone 7plus";
  34. // 日行两款手机型号均为日本独占,可能使用索尼FeliCa支付方案而不是苹果支付
  35. if ([deviceModel isEqualToString:@"iPhone10,1"]) return @"iPhone 8";
  36. if ([deviceModel isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
  37. if ([deviceModel isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus";
  38. if ([deviceModel isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
  39. if ([deviceModel isEqualToString:@"iPhone10,3"]) return @"iPhone X";
  40. if ([deviceModel isEqualToString:@"iPhone10,6"]) return @"iPhone X";
  41. if ([deviceModel isEqualToString:@"iPhone11,2"]) return @"iPhone XS";
  42. if ([deviceModel isEqualToString:@"iPhone11,4"]) return @"iPhone XS Max";
  43. if ([deviceModel isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";
  44. if ([deviceModel isEqualToString:@"iPhone11,8"]) return @"iPhone XR";
  45. if ([deviceModel isEqualToString:@"iPhone12,1"]) return @"iPhone 11";
  46. if ([deviceModel isEqualToString:@"iPhone12,3"]) return @"iPhone 11 Pro";
  47. if ([deviceModel isEqualToString:@"iPhone12,5"]) return @"iPhone 11 Pro Max";
  48. if ([deviceModel isEqualToString:@"iPhone13,1"]) return @"iPhone 12 mini";
  49. if ([deviceModel isEqualToString:@"iPhone13,2"]) return @"iPhone 12";
  50. if ([deviceModel isEqualToString:@"iPhone13,3"]) return @"iPhone 12 Pro";
  51. if ([deviceModel isEqualToString:@"iPhone13,4"]) return @"iPhone 12 Pro Max";
  52. if ([deviceModel isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
  53. if ([deviceModel isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
  54. if ([deviceModel isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
  55. if ([deviceModel isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
  56. if ([deviceModel isEqualToString:@"iPod5,1"]) return @"iPod Touch (5 Gen)";
  57. if ([deviceModel isEqualToString:@"iPad1,1"]) return @"iPad";
  58. if ([deviceModel isEqualToString:@"iPad1,2"]) return @"iPad 3G";
  59. if ([deviceModel isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";
  60. if ([deviceModel isEqualToString:@"iPad2,2"]) return @"iPad 2";
  61. if ([deviceModel isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
  62. if ([deviceModel isEqualToString:@"iPad2,4"]) return @"iPad 2";
  63. if ([deviceModel isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)";
  64. if ([deviceModel isEqualToString:@"iPad2,6"]) return @"iPad Mini";
  65. if ([deviceModel isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)";
  66. if ([deviceModel isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)";
  67. if ([deviceModel isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM+CDMA)";
  68. if ([deviceModel isEqualToString:@"iPad3,3"]) return @"iPad 3";
  69. if ([deviceModel isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)";
  70. if ([deviceModel isEqualToString:@"iPad3,5"]) return @"iPad 4";
  71. if ([deviceModel isEqualToString:@"iPad3,6"]) return @"iPad 4 (GSM+CDMA)";
  72. if ([deviceModel isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)";
  73. if ([deviceModel isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)";
  74. if ([deviceModel isEqualToString:@"iPad4,4"]) return @"iPad Mini 2 (WiFi)";
  75. if ([deviceModel isEqualToString:@"iPad4,5"]) return @"iPad Mini 2 (Cellular)";
  76. if ([deviceModel isEqualToString:@"iPad4,6"]) return @"iPad Mini 2";
  77. if ([deviceModel isEqualToString:@"iPad4,7"]) return @"iPad Mini 3";
  78. if ([deviceModel isEqualToString:@"iPad4,8"]) return @"iPad Mini 3";
  79. if ([deviceModel isEqualToString:@"iPad4,9"]) return @"iPad Mini 3";
  80. if ([deviceModel isEqualToString:@"iPad5,1"]) return @"iPad Mini 4 (WiFi)";
  81. if ([deviceModel isEqualToString:@"iPad5,2"]) return @"iPad Mini 4 (LTE)";
  82. if ([deviceModel isEqualToString:@"iPad5,3"]) return @"iPad Air 2";
  83. if ([deviceModel isEqualToString:@"iPad5,4"]) return @"iPad Air 2";
  84. if ([deviceModel isEqualToString:@"iPad6,3"]) return @"iPad Pro 9.7";
  85. if ([deviceModel isEqualToString:@"iPad6,4"]) return @"iPad Pro 9.7";
  86. if ([deviceModel isEqualToString:@"iPad6,7"]) return @"iPad Pro 12.9";
  87. if ([deviceModel isEqualToString:@"iPad6,8"]) return @"iPad Pro 12.9";
  88. if ([deviceModel isEqualToString:@"AppleTV2,1"]) return @"Apple TV 2";
  89. if ([deviceModel isEqualToString:@"AppleTV3,1"]) return @"Apple TV 3";
  90. if ([deviceModel isEqualToString:@"AppleTV3,2"]) return @"Apple TV 3";
  91. if ([deviceModel isEqualToString:@"AppleTV5,3"]) return @"Apple TV 4";
  92. if ([deviceModel isEqualToString:@"i386"]) return @"Simulator";
  93. if ([deviceModel isEqualToString:@"x86_64"]) return @"Simulator";
  94. return deviceModel;
  95. }
  96. + (NSString *)getOSVerison {
  97. return [UIDevice currentDevice].systemVersion;
  98. }
  99. @end