当前位置: 首页 > news >正文

iOS如何获取设备型号的最新方法总结

每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符,称为 device model 或者叫 machine name

通常的做法是,先获取设备的 device model 值,再手动映射为具体的设备型号(或者直接把 device model 值传给后端,让后端去做映射,这样的好处是可以随时兼容新设备)。

完整的 device mode 数据参考 Wiki:https://www.theiphonewiki.com/wiki/Models

我们可以先获取 device model 值,记为 internalName ,然后进行对比判断,转换成具体的设备型号。实现代码如下图所示:

+ (NSString *)deviceName {struct utsname systemInfo;uname(&systemInfo);NSString *internalName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];NSDictionary *dict = @{// iPhone@"iPhone1,1" : @"iPhone",@"iPhone1,2" : @"iPhone 3G",@"iPhone2,1" : @"iPhone 3GS",@"iPhone3,1" : @"iPhone 4",@"iPhone3,2" : @"iPhone 4",@"iPhone3,3" : @"iPhone 4",@"iPhone4,1" : @"iPhone 4S",@"iPhone5,1" : @"iPhone 5",@"iPhone5,2" : @"iPhone 5",@"iPhone5,3" : @"iPhone 5c",@"iPhone5,4" : @"iPhone 5c",@"iPhone6,1" : @"iPhone 5s",@"iPhone6,2" : @"iPhone 5s",@"iPhone7,2" : @"iPhone 6",@"iPhone7,1" : @"iPhone 6 Plus",@"iPhone8,1" : @"iPhone 6s",@"iPhone8,2" : @"iPhone 6s Plus",@"iPhone8,4" : @"iPhone SE (1st generation)",@"iPhone9,1" : @"iPhone 7",@"iPhone9,3" : @"iPhone 7",@"iPhone9,2" : @"iPhone 7 Plus",@"iPhone9,4" : @"iPhone 7 Plus",@"iPhone10,1" : @"iPhone 8",@"iPhone10,4" : @"iPhone 8",@"iPhone10,2" : @"iPhone 8 Plus",@"iPhone10,5" : @"iPhone 8 Plus",@"iPhone10,3" : @"iPhone X",@"iPhone10,6" : @"iPhone X",@"iPhone11,8" : @"iPhone XR",@"iPhone11,2" : @"iPhone XS",@"iPhone11,6" : @"iPhone XS Max",@"iPhone11,4" : @"iPhone XS Max",@"iPhone12,1" : @"iPhone 11",@"iPhone12,3" : @"iPhone 11 Pro",@"iPhone12,5" : @"iPhone 11 Pro Max",@"iPhone12,8" : @"iPhone SE (2nd generation)",@"iPhone13,1" : @"iPhone 12 mini",@"iPhone13,2" : @"iPhone 12",@"iPhone13,3" : @"iPhone 12 Pro",@"iPhone13,4" : @"iPhone 12 Pro Max",@"iPhone14,4" : @"iPhone 13 mini",@"iPhone14,5" : @"iPhone 13",@"iPhone14,2" : @"iPhone 13 Pro",@"iPhone14,3" : @"iPhone 13 Pro Max",@"iPhone14,6" : @"iPhone SE (3rd generation)",@"iPhone14,7" : @"iPhone 14",@"iPhone14,8" : @"iPhone 14 Plus",@"iPhone15,2" : @"iPhone 14 Pro",@"iPhone15,3" : @"iPhone 14 Pro Max",// iPad@"iPad1,1" : @"iPad",@"iPad2,1" : @"iPad 2",@"iPad2,2" : @"iPad 2",@"iPad2,3" : @"iPad 2",@"iPad2,4" : @"iPad 2",@"iPad3,1" : @"iPad (3rd generation)",@"iPad3,2" : @"iPad (3rd generation)",@"iPad3,3" : @"iPad (3rd generation)",@"iPad3,4" : @"iPad (4th generation)",@"iPad3,5" : @"iPad (4th generation)",@"iPad3,6" : @"iPad (4th generation)",@"iPad6,11" : @"iPad (5th generation)",@"iPad6,12" : @"iPad (5th generation)",@"iPad7,5" : @"iPad (6th generation)",@"iPad7,6" : @"iPad (6th generation)",@"iPad7,11" : @"iPad (7th generation)",@"iPad7,12" : @"iPad (7th generation)",// iPad Air@"iPad4,1" : @"iPad Air",@"iPad4,2" : @"iPad Air",@"iPad4,3" : @"iPad Air",@"iPad5,3" : @"iPad Air 2",@"iPad5,4" : @"iPad Air 2",@"iPad11,3" : @"iPad Air (3rd generation)",@"iPad11,4" : @"iPad Air (3rd generation)",// iPad Pro@"iPad6,7" : @"iPad Pro (12.9-inch)",@"iPad6,8" : @"iPad Pro (12.9-inch)",@"iPad6,3" : @"iPad Pro (9.7-inch)",@"iPad6,4" : @"iPad Pro (9.7-inch)",@"iPad7,1" : @"iPad Pro (12.9-inch) (2nd generation)",@"iPad7,2" : @"iPad Pro (12.9-inch) (2nd generation)",@"iPad7,3" : @"iPad Pro (10.5-inch)",@"iPad7,4" : @"iPad Pro (10.5-inch)",@"iPad8,1" : @"iPad Pro (11-inch)",@"iPad8,2" : @"iPad Pro (11-inch)",@"iPad8,3" : @"iPad Pro (11-inch)",@"iPad8,4" : @"iPad Pro (11-inch)",@"iPad8,5" : @"iPad Pro (12.9-inch) (3rd generation)",@"iPad8,6" : @"iPad Pro (12.9-inch) (3rd generation)",@"iPad8,7" : @"iPad Pro (12.9-inch) (3rd generation)",@"iPad8,8" : @"iPad Pro (12.9-inch) (3rd generation)",@"iPad8,9" : @"iPad Pro (11-inch) (2nd generation)",@"iPad8,10" : @"iPad Pro (11-inch) (2nd generation)",@"iPad8,11" : @"iPad Pro (12.9-inch) (4th generation)",@"iPad8,12" : @"iPad Pro (12.9-inch) (4th generation)",// iPad mini@"iPad2,5" : @"iPad mini",@"iPad2,6" : @"iPad mini",@"iPad2,7" : @"iPad mini",@"iPad4,4" : @"iPad mini 2",@"iPad4,5" : @"iPad mini 2",@"iPad4,6" : @"iPad mini 2",@"iPad4,7" : @"iPad mini 3",@"iPad4,8" : @"iPad mini 3",@"iPad4,9" : @"iPad mini 3",@"iPad5,1" : @"iPad mini 4",@"iPad5,2" : @"iPad mini 4",@"iPad11,1" : @"iPad mini (5th generation)",@"iPad11,2" : @"iPad mini (5th generation)",//other@"i386":@"iPhone Simulator",@"x86_64":@"iPhone Simulator",};NSString *model = [dict objectForKey:internalName];if (model.length == 0) {model = internalName;}return model;
}

http://www.lryc.cn/news/149955.html

相关文章:

  • SpringBoot之RestTemplate使用Apache的HttpClient连接池
  • 第49节:cesium 倾斜模型osgb转3dtiles,并加载(含源码+视频)
  • 零信任安全模型详解:探讨零信任安全策略的原理、实施方法和最佳实践,确保在网络中实现最小特权原则
  • 01_nodejs简介
  • 企业架构LNMP学习笔记4
  • 探索UniApp分包
  • uniapp 支持图片放大
  • Oracle数据泵备份恢复(导出导入)详细语句
  • 【JS案例】JS实现积分抽奖(内附源码)
  • angular抛出 ExpressionChangedAfterItHasBeenCheckedError错误分析
  • 动态链接库的__declspec(dllexport)关键字的概念
  • 群晖NAS:DS Video、Jellyfin等视频电影电视剧海报、背景墙搜刮器
  • WEBGL(3):鼠标动态绘制点
  • Sass基础
  • Java中的消息队列有哪些?
  • 多维时序 | Matlab实现GRU-Adaboost和GRU多变量时间序列预测对比
  • 测试用例编写规范参考
  • unity3d:功能验证,收集开源项目的工程合集
  • plotly_beforehover 用法:
  • 利用 AI 赋能云安全,亚马逊云科技的安全技术创新服务不断赋能开发者
  • 18. 填坑Ⅰ
  • CSS 实现平面圆点绕椭圆动画
  • docker login : x509: certificate signed by unknown authority
  • 金蝶云星空二开,插件查看工具
  • error: ‘std::_hypot‘ has not been declared using std::hypot;
  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用。
  • Java设计模式:四、行为型模式-09:模板模式
  • 【前端】Vue2 脚手架模块化开发 -快速入门
  • 【广州华锐互动】AR昆虫认知学习系统实现对昆虫形态的捕捉和还原
  • nginx压缩ttf文件 mine.types的作用