繁体   English   中英

从 WatchOS 捕获 Apple Watch 的型号标识符

[英]Capture model identifier for Apple Watch from WatchOS

看起来没有任何官方记录的从手表应用程序获取 Apple Watch 模型的方法,但是有这篇文章显示了sysctlbyname特殊用法:

如何确定 Apple Watch 型号?

谁能帮我弄清楚为什么这个功能不起作用? 它有时会返回

“手表\\t”

而不是预期的

“看2,4”

Swift 的 sysctlbyname 函数似乎是这里描述的这个 c 函数: https ://opensource.apple.com/source/Libc/Libc-167/gen.subproj/sysctlbyname.c.auto.html

我的代码是从 SO 帖子中的 swift answer 复制而来的:

private func getWatchModel() -> String? {
   var size: size_t = 0
   sysctlbyname("hw.machine", nil, &size, nil, 0)
   var machine = CChar()
   sysctlbyname("hw.machine", &machine, &size, nil, 0)
   return String(cString: &machine, encoding: String.Encoding.utf8)?.trimmingCharacters(in: .whitespacesAndNewlines)
} // Should return a string like "Watch2,4"

您永远不会分配缓冲区来接收机器字符串。 改变

var machine = CChar()

var machine = [CChar](repeating: 0, count: size) 

你应该很高兴去!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM