Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to detect iOS device programmatically

I need to know which iOS device is currently running app (saying more exactly I need to know is device armv6 or armv7). UIUserInterfaceIdiomPad() could not check is device an iPhone4S or iPhone3G. Is it possible?

like image 943
medvedNick Avatar asked Dec 20 '25 11:12

medvedNick


2 Answers

Download https://github.com/erica/uidevice-extension (UIDevice-Hardware class) and you can use these:

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

Or check if its retina

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

    return NO;
}

Or check iOs version

+ (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;
}
like image 154
Omar Abdelhafith Avatar answered Dec 22 '25 08:12

Omar Abdelhafith


If you really want to know (at run time) if you are running on arm6 or arm7, you can use "NXGetArchInfoFromCPUType" (much more detail is available in the accepted answer to this question).

Otherwise you can use platformType or platformString, as our incredibly quick answering friend Omar suggested (and +1 to him!).

like image 45
Michael Dautermann Avatar answered Dec 22 '25 07:12

Michael Dautermann



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!