如何以编程方式检测 iOS 设备

Posted

技术标签:

【中文标题】如何以编程方式检测 iOS 设备【英文标题】:How to detect iOS device programmatically 【发布时间】:2012-06-18 11:31:43 【问题描述】:

我需要知道哪个 ios 设备当前正在运行应用程序(更确切地说,我需要知道的是设备 armv6 还是 armv7)。 UIUserInterfaceIdiomPad() 无法检查设备是 iPhone4S 还是 iPhone3G。有可能吗?

【问题讨论】:

只是出于好奇,为什么要知道是armv6还是armv7? 我在我的项目中添加了一些功能,它会导致 armv6 设备 (iPhone3G) 上的崩溃。我知道,问题出在处理器的架构上,但还不知道如何解决它。所以我决定做一个开关,在我试图让应用在所有设备上运行时关闭旧设备上的这个功能 【参考方案1】:

下载https://github.com/erica/uidevice-extension(UIDevice-Hardware 类)你可以使用这些:

[UIDevice currentDevice] platformType]   // returns UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // returns @"iPhone 4G"

或者检查它的视网膜

+ (BOOL) isRetina

    if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
        return [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;

    return NO;

或者查看iOS版本

+ (BOOL) isIOS5

    NSString *os5 = @"5.0";
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

    //    currSysVer = @"5.0.1";
    if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedAscending) //lower than 4
    
        return NO;
    
    else if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedDescending) //5.0.1 and above
            
        return YES;
    
    else // IOS 5
    
        return YES;
    

    return NO;

【讨论】:

谢谢!那和@Michael Dautermann 的答案正是我所需要的! 嗯,你没有说 -platformString 是来自 there 的 uidevice 的一个类别;) -1 [[UIDevice currentDevice] platformString] 对我不起作用。 我忘了说你必须下载这个github.com/erica/uidevice-extension 撤销了我的 -1 并编辑了您的帖子以在顶部发布带有代码块的 url(这样一目了然更有帮助)。【参考方案2】:

如果你真的想知道(在运行时)你是在 arm6 还是 arm7 上运行,你可以使用“NXGetArchInfoFromCPUType”(much more detail is available in the accepted answer to this question)。

否则,您可以使用 platformType 或 platformString,正如我们快速回答的朋友 Omar 建议的那样(并向他 +1!)。

【讨论】:

我说的有侵略性吗?我的意思是“该死,你回答得超级快”。可能再过一个月左右,你就会在积分方面赶上我。 感谢您的链接,这将非常有帮助!顺便说一句,你们俩都回答得很快 @MichaelDautermann 我希望我能达到 10K 感谢您的鼓励 :) ,medvedNick 不客气

以上是关于如何以编程方式检测 iOS 设备的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在android中检测设备电源按钮按下两次

如何以正确的方式检测 Android 设备?

如何在android中以编程方式检测MIUI ROM?

如何以编程方式更改 iOS 设备音量?

如何以编程方式获取 iOS 设备 MAC 地址

有没有办法通过 iOS/swift 中的蓝牙以编程方式连接 android 和 IOS 设备?