如何快速获取手机的型号名称

时间:2019-10-16 11:43:52

标签: ios swift iphone-privateapi

我已经搜索了一段时间,但发现无法从UIDevice.current.model获得,因为它仅返回iPhone。有一些答案指向此代码:

if let simulatorModelIdentifier = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] { 
    return simulatorModelIdentifier 
}

var sysinfo = utsname()
uname(&sysinfo) // ignore return value
let deviceModel = String(bytes: Data(bytes: &sysinfo.machine, count: Int(_SYS_NAMELEN)), encoding: .ascii)?.trimmingCharacters(in: .controlCharacters)

return deviceModel ?? ""

顺便说一下,我不确定这是使用公共API还是私有API,对我来说似乎是私有API。

问题 这段代码使用任何私有api吗?

1 个答案:

答案 0 :(得分:3)

您的代码未使用任何私有API。

uname函数返回一个POSIX结构,该结构包含名称和有关当前内核的信息。 machine变量包含一个硬件标识符。您需要将该标识符转换为更友好的名称,仅此而已。

您可以在终端中使用man uname以获得有关该功能的更多信息。