[iOS]獲取裝置具體型號資訊
阿新 • • 發佈:2018-10-31
本文地址; http://blog.csdn.net/zhaoyabei/article/details/46697859
應用統計中有時候需要上傳裝置型號,如果這樣寫:
[[UIDevice currentDevice] model]
獲得的裝置型號不是具體型號,如在iPhone5S上面執行,實測得到字串為@”iPhone”,我想要的是具體型號。
這裡提供一個方法來獲得裝置具體型號(版本與機型的對應關係來源於維基百科):
- (NSString *)platform{
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
//未考慮iPhone3等較老裝置,未考慮iPad裝置(公司的應用不支援iPad)
if ([deviceString hasPrefix:@"iPhone3"]) return @"iPhone 4";
if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([deviceString isEqualToString:@"iPhone5,1" ]||[deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
if ([deviceString isEqualToString:@"iPhone5,3"]||[deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5C";
if ([deviceString hasPrefix:@"iPhone6"]) return @"iPhone 5S";
if ([deviceString isEqualToString:@"iPhone7,1" ]) return @"iPhone 6 Plus";
if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([deviceString isEqualToString:@"i386"]) return @"Simulator";
if ([deviceString isEqualToString:@"x86_64"]) return @"Simulator";
//如果沒有匹配直接返回系統提供的類似@"iPhone5,3"這種型號
return deviceString;
}