zoukankan      html  css  js  c++  java
  • iOS开发-获取设备型号信息

    开发中有的时候查看设计统计数据,或者通过日志查看错误信息,这个时候我们就需要获取获取设备信息,看下关于设备有几种方法:

        NSLog(@"%@",[[UIDevice currentDevice] name]);//设备名称
        NSLog(@"%@",[[UIDevice currentDevice] model]);//设备类型
        NSLog(@"%@",[[UIDevice currentDevice] localizedModel]);
        NSLog(@"%@",[[UIDevice currentDevice] systemName]);//系统名称
        NSLog(@"%@",[[UIDevice currentDevice] systemVersion]);//系统版本
    

    这个并不能满足我们的需求,我们需要获取具体的设备型号,iPhone4还是iPhone6s,32G还是64G的,我们就需要自己扩张UIDevice,实战之前我们需要看一下维基百科的文档:https://www.theiphonewiki.com/wiki/Models;

    + (NSString *)devicePlatForm{
        struct utsname systemInfo;
        uname(&systemInfo);
        NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
    
        if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (A1332)";
        if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4 (A1332)";
        if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (A1349)";
        if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S (A1387/A1431)";
        if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (A1428)";
        if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (A1429/A1442)";
        if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (A1456/A1532)";
        if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (A1507/A1516/A1526/A1529)";
        if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (A1453/A1533)";
        if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (A1457/A1518/A1528/A1530)";
        if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus (A1522/A1524)";
        if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6 (A1549/A1586)";
        //http://www.cnblogs.com/xiaofeixiang/
        if ([platform isEqualToString:@"iPod1,1"])   return @"iPod Touch 1G (A1213)";
        if ([platform isEqualToString:@"iPod2,1"])   return @"iPod Touch 2G (A1288)";
        if ([platform isEqualToString:@"iPod3,1"])   return @"iPod Touch 3G (A1318)";
        if ([platform isEqualToString:@"iPod4,1"])   return @"iPod Touch 4G (A1367)";
        if ([platform isEqualToString:@"iPod5,1"])   return @"iPod Touch 5G (A1421/A1509)";
        
        if ([platform isEqualToString:@"iPad1,1"])   return @"iPad 1G (A1219/A1337)";
        
        if ([platform isEqualToString:@"iPad2,1"])   return @"iPad 2 (A1395)";
        if ([platform isEqualToString:@"iPad2,2"])   return @"iPad 2 (A1396)";
        if ([platform isEqualToString:@"iPad2,3"])   return @"iPad 2 (A1397)";
        if ([platform isEqualToString:@"iPad2,4"])   return @"iPad 2 (A1395+New Chip)";
        if ([platform isEqualToString:@"iPad2,5"])   return @"iPad Mini 1G (A1432)";
        if ([platform isEqualToString:@"iPad2,6"])   return @"iPad Mini 1G (A1454)";
        if ([platform isEqualToString:@"iPad2,7"])   return @"iPad Mini 1G (A1455)";
        
        if ([platform isEqualToString:@"iPad3,1"])   return @"iPad 3 (A1416)";
        if ([platform isEqualToString:@"iPad3,2"])   return @"iPad 3 (A1403)";
        if ([platform isEqualToString:@"iPad3,3"])   return @"iPad 3 (A1430)";
        if ([platform isEqualToString:@"iPad3,4"])   return @"iPad 4 (A1458)";
        if ([platform isEqualToString:@"iPad3,5"])   return @"iPad 4 (A1459)";
        if ([platform isEqualToString:@"iPad3,6"])   return @"iPad 4 (A1460)";
        
        if ([platform isEqualToString:@"iPad4,1"])   return @"iPad Air (A1474)";
        if ([platform isEqualToString:@"iPad4,2"])   return @"iPad Air (A1475)";
        if ([platform isEqualToString:@"iPad4,3"])   return @"iPad Air (A1476)";
        if ([platform isEqualToString:@"iPad4,4"])   return @"iPad Mini 2G (A1489)";
        if ([platform isEqualToString:@"iPad4,5"])   return @"iPad Mini 2G (A1490)";
        if ([platform isEqualToString:@"iPad4,6"])   return @"iPad Mini 2G (A1491)";
        
        if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";
        if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";
        return platform;
    }
    

    参数信息可以通过维基百科来添加,如果单纯只是判断iPhone几代也可以通过屏幕分辨率确认~

    GitHub项目地址:https://github.com/SmallElephant/FEDevice~

  • 相关阅读:
    新站发布——寻爱交友网
    博客园居然还在运营
    关于Method类的invoke方法
    创建对象的四种方法
    事务操作
    数据库的并发
    run( )和start( )方法
    JAVA语言的下面几种数组复制方法中,哪个效率最高?
    构造函数问题
    上下转型的调用问题
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/5100187.html
Copyright © 2011-2022 走看看