美文网首页深入学习iOSiOSiOS实战
iOS 获取手机型号,系统版本

iOS 获取手机型号,系统版本

作者: 天明依旧 | 来源:发表于2016-01-26 10:07 被阅读41288次

新添加判断iPhone X 、iPhone 8、iPhone 8 Plus ,恩,应该是对的!!♪(^∇^*)

Swift版

1.手机系统版本:9.1

NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];

2.手机类型:iPhone 6

NSString* phoneModel = [self iphoneType];//方法在下面

3.手机系统:iPhone OS

NSString * iponeM = [[UIDevice currentDevice] systemName];

4.电池电量

CGFloat batteryLevel=[[UIDevicecurrentDevice]batteryLevel];

- (NSString*)iphoneType {

//需要导入头文件:#import <sys/utsname.h>

struct utsname systemInfo;

uname(&systemInfo);

NSString*platform = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];

if([platform isEqualToString:@"iPhone1,1"])  return@"iPhone 2G";

if([platform isEqualToString:@"iPhone1,2"])  return@"iPhone 3G";

if([platform isEqualToString:@"iPhone2,1"])  return@"iPhone 3GS";

if([platform isEqualToString:@"iPhone3,1"])  return@"iPhone 4";

if([platform isEqualToString:@"iPhone3,2"])  return@"iPhone 4";

if([platform isEqualToString:@"iPhone3,3"])  return@"iPhone 4";

if([platform isEqualToString:@"iPhone4,1"])  return@"iPhone 4S";

if([platform isEqualToString:@"iPhone5,1"])  return@"iPhone 5";

if([platform isEqualToString:@"iPhone5,2"])  return@"iPhone 5";

if([platform isEqualToString:@"iPhone5,3"])  return@"iPhone 5c";

if([platform isEqualToString:@"iPhone5,4"])  return@"iPhone 5c";

if([platform isEqualToString:@"iPhone6,1"])  return@"iPhone 5s";

if([platform isEqualToString:@"iPhone6,2"])  return@"iPhone 5s";

if([platform isEqualToString:@"iPhone7,1"])  return@"iPhone 6 Plus";

if([platform isEqualToString:@"iPhone7,2"])  return@"iPhone 6";

if([platform isEqualToString:@"iPhone8,1"])  return@"iPhone 6s";

if([platform isEqualToString:@"iPhone8,2"])  return@"iPhone 6s Plus";

if([platform isEqualToString:@"iPhone8,4"])  return@"iPhone SE";

if([platform isEqualToString:@"iPhone9,1"])  return@"iPhone 7";

if([platform isEqualToString:@"iPhone9,2"])  return@"iPhone 7 Plus";

if([platform isEqualToString:@"iPhone10,1"]) return@"iPhone 8";

if([platform isEqualToString:@"iPhone10,4"]) return@"iPhone 8";

if([platform isEqualToString:@"iPhone10,2"]) return@"iPhone 8 Plus";

if([platform isEqualToString:@"iPhone10,5"]) return@"iPhone 8 Plus";

if([platform isEqualToString:@"iPhone10,3"]) return@"iPhone X";

if([platform isEqualToString:@"iPhone10,6"]) return@"iPhone X";

if([platform isEqualToString:@"iPod1,1"])  return@"iPod Touch 1G";

if([platform isEqualToString:@"iPod2,1"])  return@"iPod Touch 2G";

if([platform isEqualToString:@"iPod3,1"])  return@"iPod Touch 3G";

if([platform isEqualToString:@"iPod4,1"])  return@"iPod Touch 4G";

if([platform isEqualToString:@"iPod5,1"])  return@"iPod Touch 5G";

if([platform isEqualToString:@"iPad1,1"])  return@"iPad 1G";

if([platform isEqualToString:@"iPad2,1"])  return@"iPad 2";

if([platform isEqualToString:@"iPad2,2"])  return@"iPad 2";

if([platform isEqualToString:@"iPad2,3"])  return@"iPad 2";

if([platform isEqualToString:@"iPad2,4"])  return@"iPad 2";

if([platform isEqualToString:@"iPad2,5"])  return@"iPad Mini 1G";

if([platform isEqualToString:@"iPad2,6"])  return@"iPad Mini 1G";

if([platform isEqualToString:@"iPad2,7"])  return@"iPad Mini 1G";

if([platform isEqualToString:@"iPad3,1"])  return@"iPad 3";

if([platform isEqualToString:@"iPad3,2"])  return@"iPad 3";

if([platform isEqualToString:@"iPad3,3"])  return@"iPad 3";

if([platform isEqualToString:@"iPad3,4"])  return@"iPad 4";

if([platform isEqualToString:@"iPad3,5"])  return@"iPad 4";

if([platform isEqualToString:@"iPad3,6"])  return@"iPad 4";

if([platform isEqualToString:@"iPad4,1"])  return@"iPad Air";

if([platform isEqualToString:@"iPad4,2"])  return@"iPad Air";

if([platform isEqualToString:@"iPad4,3"])  return@"iPad Air";

if([platform isEqualToString:@"iPad4,4"])  return@"iPad Mini 2G";

if([platform isEqualToString:@"iPad4,5"])  return@"iPad Mini 2G";

if([platform isEqualToString:@"iPad4,6"])  return@"iPad Mini 2G";

if([platform isEqualToString:@"iPad4,7"])  return@"iPad Mini 3";

if([platform isEqualToString:@"iPad4,8"])  return@"iPad Mini 3";

if([platform isEqualToString:@"iPad4,9"])  return@"iPad Mini 3";

if([platform isEqualToString:@"iPad5,1"])  return@"iPad Mini 4";

if([platform isEqualToString:@"iPad5,2"])  return@"iPad Mini 4";

if([platform isEqualToString:@"iPad5,3"])  return@"iPad Air 2";

if([platform isEqualToString:@"iPad5,4"])  return@"iPad Air 2";

if([platform isEqualToString:@"iPad6,3"])  return@"iPad Pro 9.7";

if([platform isEqualToString:@"iPad6,4"])  return@"iPad Pro 9.7";

if([platform isEqualToString:@"iPad6,7"])  return@"iPad Pro 12.9";

if([platform isEqualToString:@"iPad6,8"])  return@"iPad Pro 12.9";

if([platform isEqualToString:@"i386"])  return@"iPhone Simulator";

if([platform isEqualToString:@"x86_64"])  return@"iPhone Simulator";

return platform;

}

相关文章

网友评论

  • 别人家的程序员:直接获取systemInfo.nodename
    KB_MORE:老哥,那是你定义的设备名称,不是手机型号
  • 叔简:老板,需要更新一下了。https://www.theiphonewiki.com/wiki/Models
  • zhaihongxia:iPhone9.4 是什么手机
  • i_promise:为什么 8、8P、X都是两个?
  • 蝈蝈超:iPad Pro 10.5没有
  • PokerFace_u:啥时更新的,iPhone X都有,厉害!
  • yanhooIT:你这些设备型号都是从哪里查的呀?能给贴个官方网址吗?
    69c81508658f:那些识别码都在这
    https://www.theiphonewiki.com/wiki/Models
  • 阿唯不知道:楼主,iPhone X来了
    阿唯不知道:@天明依旧 大哥,你的那句 应该是对的 怎么看着那么揪心呢:joy:
    天明依旧:更新~
  • 白牛桑:牛逼 ,棒棒哒
  • XIAOHANG:请问一下,为什么iPhone5,1 iPhone5,2就代表iphone5?
    koreadragon:苹果版本这么规定的
  • gychaosuper:

    +(NSString *)deviceModel{

    struct utsname systemInfo;
    uname(&systemInfo);
    NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

    static NSDictionary * mapping;
    if (!mapping) {
    mapping = @{
    //iPhone
    @"iPhone1,1":@"iPhone 1G",
    @"iPhone1,2":@"iPhone 3G",
    @"iPhone2,1":@"iPhone 3GS",
    @"iPhone3,1":@"iPhone 4",
    @"iPhone3,2":@"Verizon iPhone 4",
    @"iPhone4,1":@"iPhone 4S",
    @"iPhone5,1":@"iPhone 5",
    @"iPhone5,2":@"iPhone 5",
    @"iPhone5,3":@"iPhone 5C",
    @"iPhone5,4":@"iPhone 5C",
    @"iPhone6,1":@"iPhone 5S",
    @"iPhone6,2":@"iPhone 5S",
    @"iPhone7,1":@"iPhone 6 Plus",
    @"iPhone7,2":@"iPhone 6",
    @"iPhone8,1":@"iPhone 6s",
    @"iPhone8,2":@"iPhone 6s Plus",
    @"iPhone9,1":@"iPhone 7 (A1549/A1586)",
    @"iPhone9,2":@"iPhone 7 Plus (A1549/A1586)",

    //iPod
    @"iPod1,1":@"iPod Touch 1G",
    @"iPod2,1":@"iPod Touch 2G",
    @"iPod3,1":@"iPod Touch 3G",
    @"iPod4,1":@"iPod Touch 4G",
    @"iPod5,1":@"iPod Touch 5G",

    //iPad
    @"iPad1,1":@"iPad",
    @"iPad2,1":@"iPad 2 (WiFi)",
    @"iPad2,2":@"iPad 2 (GSM)",
    @"iPad2,3":@"iPad 2 (CDMA)",
    @"iPad2,4":@"iPad 2 (32nm)",
    @"iPad2,5":@"iPad mini (WiFi)",
    @"iPad2,6":@"iPad mini (GSM)",
    @"iPad2,7":@"iPad mini (CDMA)",
    @"iPad4,4"
  • 大怪猿:获取不了哦 返回空值
  • Bruce_XHG:你好,想请问一下为什么有时候获取不到手机型号.自己测试的时候没遇到过,看后台数据的时候发现有线上用户没获取到手机型号
    Bruce_XHG:@天明依旧 udid 获取到了,部分用户的手机型号获取不到 和部分用户的当前应用程序的版本号获取的不对.开发和测试过程中没有遇到这种情况
    天明依旧:@XHG_MAKE 这个我还真没遇到过 是所有信息都没有还是单独只有手机型号没有呢
  • Hyukooooh:系统版本和系统类型反了吧
    天明依旧:@LsyWtf 呃,反了:stuck_out_tongue_winking_eye:
  • 在路上浅谈管理:Function这个怎么来的,,在哪里??怎么写??
    在路上浅谈管理:@天明依旧 你扣扣号多少,我加你讨论,我的扣扣号:1006242053
    在路上浅谈管理:@天明依旧 我换了,,会报错,,,
    天明依旧:@913cc3451b44 你把下面的方法写到要使用的页面,Function换self...
  • 呆头呆脑雷:我觉着就算是判断也不用全部if吧, 这肯定是if (){} else if()
    呆头呆脑雷:@王英良不只是个名字 没注意到,愚钝了,但是总觉着这么写不规范,声明个枚举或许更好一些
    王英良不止是名字:@myScorpion 请注意后边的 return 关键字....
  • 2da1e516025c:这个能通过审核吗?
    2da1e516025c:@天明依旧 就怕苹果不让这样获取,能通过审核就好
    天明依旧:@jia611 为什么不能:anguished:
  • 傲视众生的冰块:就想知道到7和7p是什么。。。
    傲视众生的冰块:@天明依旧 nice
    天明依旧:@傲视众生的冰块 我找了找 加上了
  • 永恒守护__刘鹏辉:那个Function类在哪啊
    永恒守护__刘鹏辉:@天明依旧 直接改成实例方法,用self调用就行了
    天明依旧:@永恒守护__刘鹏辉 就是下面那个方法所在的类啊
  • vision_colion:怎么判断iphoneSE呢
    天明依旧:@vision_colion 呃 加上了

本文标题:iOS 获取手机型号,系统版本

本文链接:https://www.haomeiwen.com/subject/kurdkttx.html