新添加判断iPhone 7、iPhone 7 Plus ,我手里没有7,判断不对表打我~

FQ找的资料:http://www.iphonehacks.com/download-iphone-ios-firmware

1.手机系统:iPhone OS

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

2.手机类型:iPhone 6

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

3.手机系统版本:9.1

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:@"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:@"i386"])      return @"iPhone Simulator";

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

return platform;

}

文/天明依旧(简书作者)
原文链接:http://www.jianshu.com/p/02bba9419df8
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

iOS 获取手机型号,系统版本的更多相关文章

  1. android API版本对应的系统版本及Android获取手机和系统版本等信息的代码

    学了这么久的Android,竟然一直对其API对应的名称关系一值搞不清楚,现在网上认真看了下资料,转载一个觉得写得不错的作者的文章,记下来: [背景] 之前折腾android期间,慢慢地知道了,And ...

  2. iOS获取手机型号、iOS获取当前app的名称和版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...

  3. iOS获取手机型号,类似iphone 7这种 含swift和OC

    获取手机设备信息,如name.model.version等,但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种 swift: func phonetype () -> Str ...

  4. iOS获取手机型号,Swift获取手机型号(类似iphone 7这种,检测机型具体型号)

    获取手机设备信息,如name.model.version等, 但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种(含Swift和OC两种写法) Swift建议添加到extensio ...

  5. Android获取手机和系统版本等信息的代码

    有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见: String phoneInfo = "Product: ...

  6. iOS 获取手机型号(已更新至iPhone11)

    + (NSString *)iphoneType {            //    需要导入头文件:#import <sys/utsname.h>        struct utsn ...

  7. JS获取手机型号和系统

    废话不多说,直接上源码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...

  8. iOS获取设备型号、装置类型等信息

    iOS获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设 ...

  9. iOS获取设备型号和App版本号等信息(OC+Swift)

    iOS获取设备型号和App版本号等信息(OC+Swift) 字数1687 阅读382 评论3 喜欢10 好久没有写过博客了,因为中间工作比较忙,然后有些个人事情所以耽误了.但是之前写的博客还一直有人来 ...

随机推荐

  1. 小试 Ninja

    Ninja 是最近冒出来的一个 build system,它很像 make,然而效率更高,对大项目支持更好.当然我用 Ninja 和效率无关(我又没有那种有几百个中间目标的 C++ 项目要 build ...

  2. javascript实现页面滚屏效果

    当我们浏览网页的时候,时常会碰到可以滚动屏幕的炫酷网页,今天笔者对这一技术进行简单实现,效果不及读者理想中那般炫酷,主要针对滚屏的技术原理和思想进行分享和分析.本示例在页面右侧有五个数字标签,代表五个 ...

  3. android 获取适配的bitmap等相关

    获取适配尺寸的图片: File files = new File(imagePath); FileInputStream is = null; BufferedInputStream bis = nu ...

  4. iOS之内存分析

    静态内存分析(Product->Analyze) 静态内存分析是不运行程序,直接对代码进行分析. 但是没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄露 缺点:不一定准确,但是如 ...

  5. 初探Lambda表达式/Java多核编程【1】从集合到流

    从集合到流 接上一小节初探Lambda表达式/Java多核编程[0]从外部迭代到内部迭代,本小节将着手使用"流"这一概念进行"迭代"操作. 首先何为" ...

  6. hadoop系列一:hadoop集群安装

     转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6384393.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据 ...

  7. ZooKeeper的不同类型的Znodes

    在ZooKeeper中有3个不同类型的znodes:persistent, ephemeral, sequential Persistent Znodes(默认)在ZooKeeper中,这是默认的zn ...

  8. java中浅层克隆和深层克隆

    1.浅复制与深复制概念 浅复制(浅克隆)     被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象 ...

  9. [hadoop] - Container [xxxx] is running beyond physical/virtual memory limits.

    当运行mapreduce的时候,有时候会出现异常信息,提示物理内存或者虚拟内存超出限制,默认情况下:虚拟内存是物理内存的2.1倍.异常信息类似如下: Container [pid=13026,cont ...

  10. Javascript面对对象. 第四篇

    原型模式创建对象也有自己的缺点,它省略看构造函数传参初始化这一过程,带来的缺点就是初始化的值都是一致的. 而原型最大的缺点就是它优点,那就是共享. 原型中所有属性是被很多实例共享的,共享对于函数非常合 ...