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

问题描述 投票:3回答:1

我已经搜索了一段时间,但发现无法从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吗?

ios swift iphone-privateapi
1个回答
0
投票

使用此方法。

func modelIdentifier() -> String {
        if let simulatorModelIdentifier = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] { return simulatorModelIdentifier }
        var sysinfo = utsname()
        uname(&sysinfo) // ignore return value
        return String(bytes: Data(bytes: &sysinfo.machine, count: Int(_SYS_NAMELEN)), encoding: .ascii)!.trimmingCharacters(in: .controlCharacters)
}
© www.soinside.com 2019 - 2024. All rights reserved.