在开发中,我们经常需要获取设备的型号(如 iPhone X , iPhone 8 Plus 等)以进行数据统计,或者做不同的适配。但苹果并没有提供相应的系统 API 让我们直接取得当前设备的型号。
其中, UIDevice 有一个属性 model 只是用于获取 iOS 设备的类型,如 iPhone , iPod touch , iPad 等;而其另一个属性 name 表示当前设备的名称,由用户在设置》通用》关于》名称中设定,如 My iPhone , xxx 的 iPhone 等。然而,我们无法根据这两个值获得具体的型号。
不过,每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符,称为 device model 或者叫 machine name ,之前的小集介绍过,我们可以通过如图 1 中的代码来获取:
所以,通常的做法是,先获取设备的 device model 值,再手动映射为具体的设备型号(或者直接把 device model 值传给后端,让后端去做映射,这样的好处是可以随时兼容新设备)。
例如:去年发布的第一代 iPhone X 对应的 device mode 为 iPhone10,3 和 iPhone10,6 ,而今年最新发布 iPhone XS 对应 iPhone11,2 ,iPhone XS Max 对应 iPhone11,4 和 iPhone11,6 ,iPhone XR 对应 iPhone11,8 ,完整的 device mode 数据参考 Wiki:
https://www.theiphonewiki.com/wiki/Models
综上,我们可以先获取 device model 值,记为 platform ,然后进行对比判断,转换成具体的设备型号。实现代码如图 2、3 所示:
备注:图中代码只给了对 iPhone 设备型号的判断,而完整的包括 iPad 和 iPod touch 型号我已经放在 GitHub Gist 上,大家可以参考, 详见这里 。
参考链接:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
本文向大家介绍iOS获取设备唯一标识的8种方法,包括了iOS获取设备唯一标识的8种方法的使用技巧和注意事项,需要的朋友参考一下 8种iOS获取设备唯一标识的方法,希望对大家有用。 UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可以改变设备的 UDID),移动网络可以利用 UDID 来识别移动设备。
本文向大家介绍超全的iOS各种设备信息获取方法总结(包括iPhone8/iPhone X),包括了超全的iOS各种设备信息获取方法总结(包括iPhone8/iPhone X)的使用技巧和注意事项,需要的朋友参考一下 前言 在开发中,有的时候为了统计用户信息、下发广告,服务器端往往需要手机用户设备及app的各种信息,这些信息的获取可以根据不同的设备或者App、系统版本来提供不同的功能或更好的用户体验
本文向大家介绍iOS 获取设备唯一标示符的方法详解,包括了iOS 获取设备唯一标示符的方法详解的使用技巧和注意事项,需要的朋友参考一下 在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式——读取设备的UUID(Universally Unique Identifier)并通过KeyChain记录。 首先iOS中获取设备唯一标示符的方法一直随版本的更新而变
本文向大家介绍iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P,包括了iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P的使用技巧和注意事项,需要的朋友参考一下 获取设备信息总结 1、获取设备的信息 2、获取设备的唯一标示符 3、为系统创建一个随机的标示符 4、获取当前屏幕分辨率的信息 5、获取运营商的信息 需要先导入头文件 创建对象 获取运行商的名称 获
我想知道是否有可能确定目前的设备是什么类型的iPhone(例如)?我知道有可能通过 得到模型,它将返回我是否有“iPhone”或“iPod”,但我想知道是否有可能检测/知道我是否有iPhone 3GS和iPhone 4或iPhone 4S(实际上,我真正想做的是确定我是否有3G,因为我正在做大量的图形处理)。 好的,让我知道,谢谢!
如何在objective C或swift中获取设备的MAC地址。有没有办法从“标识符”字段获取MAC地址。