如何以编程方式识别iphone(3g,4s,5)版本[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以编程方式识别iphone(3g,4s,5)版本[重复]相关的知识,希望对你有一定的参考价值。
可能重复: How to find iPhone/iPod Device model(3G,3GS,4,4S) by code? Detect device type
我想以编程方式识别iphone型号(3g,4s,5)。
那怎么能找到它?
答案
您可以在以下条件下轻松检测iphone 3gs-4s,iphone5和iPad: -
if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone)
{
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
//iphone 5
}
else
{
//iphone 3.5 inch screen iphone 3g,4s
}
}
else
{
//[ipad]
}
在这个Detect device type上访问我的答案
另一答案
请使用以下代码
#import <sys/utsname.h>
NSString* machineName()
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
}
使用以下代码识别您的设备类型
if([machineName() isEqualToString:@"iPhone1,2"])
{
deviceType = @"iPhone 3G";
}
else if([machineName() isEqualToString:@"iPhone2,1"])
{
deviceType = @"iPhone 3GS";
}
else if([machineName() isEqualToString:@"iPhone3,1"] || [machineName() isEqualToString:@"iPhone3,2"] || [machineName() isEqualToString:@"iPhone3,3"])
{
deviceType = @"iPhone 4";
}
else if([machineName() isEqualToString:@"iPhone4,1"])
{
deviceType = @"iPhone 4S";
}
else if([machineName() isEqualToString:@"iPhone5,1"])
{
deviceType = @"iPhone 5";
}
else if([machineName() isEqualToString:@"iPod1,1"])
{
deviceType = @"iPod Touch 1G";
}
else if([machineName() isEqualToString:@"iPod2,1"] || [machineName() isEqualToString:@"iPod2,2"])
{
deviceType = @"iPod Touch 2G";
}
else if([machineName() isEqualToString:@"iPod3,1"])
{
deviceType = @"iPod Touch 3G";
}
else if([machineName() isEqualToString:@"iPod4,1"])
{
deviceType = @"iPod Touch 4G";
}
else if([machineName() isEqualToString:@"iPod5,1"])
{
deviceType = @"iPod Touch 5G";
}
另一答案
您可以使用Erica Sadun的UIDevice(硬件)类别
它可以用作:
[[UIDevice currentDevice] platformType] // ex: UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // ex: @"iPhone 4G"
另一答案
您可以使用以下代码:
NSString *device()
{
struct utsname devInfo;
uname(&devInfo);
return [NSString stringWithCString:devInfo.machine encoding:NSUTF8StringEncoding];
}
确保导入#import <sys/utsname.h>
另一答案
请使用以下代码
[UIDevice currentDevice] platformType] // returns UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // returns @"iPhone 4G"
或者请检查ratina
+ (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;
}
另一答案
您可以使用uidevice-extension获取这些内容您需要的是以下功能:
- (NSString *) platform;
- (NSString *) hwmodel;
- (NSUInteger) platformType;
- (NSString *) platformString;
来自UIDevice-Hardware.h
以上是关于如何以编程方式识别iphone(3g,4s,5)版本[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备
如何通过代码查找iPhone / iPod设备型号(3G,3GS,4,4S)? [重复]