以编程方式获取 iPad 设备信息

Posted

技术标签:

【中文标题】以编程方式获取 iPad 设备信息【英文标题】:Grabbing iPad device information programmatically 【发布时间】:2013-03-20 17:39:10 【问题描述】:

有没有办法使用公共框架或 API 来获取有关特定 iPad 设备的信息,即“设置”应用程序的“常规”选项卡的“关于”下列出的信息?我知道我可以使用 UIDevice 类来获取 UDID(现在在 ios 5.0 中已弃用)和设备名称。我想知道我是否可以提取更多信息。

谢谢!

【问题讨论】:

请注意,UDID 不仅已被弃用,而且使用它会导致您的应用被拒绝。 @RichardBrown 那么有没有不推荐使用的方法来获取 udid 呢? 不,你不能再使用它了。 Apple 不希望您使用它来唯一标识设备(进而可能是用户)。 有没有办法抢到序列号? 【参考方案1】:

这是我用来确定设备的东西:

#import <sys/utsname.h>

然后检查设备:

struct utsname systemInfo;
uname(&systemInfo);
NSString *modelName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

if ([modelName isEqualToString:@"iPhone4,1"]) 
    // act accordingly

请参阅http://theiphonewiki.com/wiki/Models 上的“标识符”列以查看可能的设备。

【讨论】:

【参考方案2】:

您可以从UIDevice 类中获取有关设备的大量信息:

姓名 列表项 系统名称 系统版本 型号 本地化模型 userInterfaceIdiom identifierForVendor 方向 电池电量 电池状态

我建议您阅读documentation 以查看您可以检索的所有信息。

您还应该查看 erica 的这个扩展:https://github.com/erica/uidevice-extension

希望对你有帮助!

【讨论】:

【参考方案3】:

有很多有用的类别使用公共、半私有和私有 API(主要是 IOKit),您可以(或不能,需要上下文)使用它们。参考this GitHub repository。

【讨论】:

【参考方案4】:

你可以使用 sysctl 系统库的东西 我记得无法提取sysctl manpage 中记录的所有信息,但我记得能够提取相当多的信息

如果有什么需要清理的请告诉我

【讨论】:

以上是关于以编程方式获取 iPad 设备信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone sdk 中以编程方式获取设备名称?

IOS9 以编程方式限制 iphone 和 ipad

以编程方式配置 iPad IP 地址

如何以编程方式通过 Wifi 获取连接在同一网络上的其他设备的 IP 地址?

如何在iOS 7中以编程方式设置设备方向?

如何以编程方式在 Android 设备中获取设备 (AOSP) 内部版本号?