以编程方式获取 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 设备信息的主要内容,如果未能解决你的问题,请参考以下文章