新添加判断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. 启动activity与使用Intent通信机制解析

    我们都知道,一个activity启动另一个activity最简单的方式就是使用startActivity方法: public void startActivity (Intent intent) 但是 ...

  2. CTF入门指南

    转自http://www.cnblogs.com/christychang/p/6032532.html ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: We ...

  3. seq语句随笔

    1.UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果. 2.UNION ALL只是简单的将两个结果合并后就返回.这样,如果返回的两个结 ...

  4. 循环语句——do…while语句

    一.do while语句结构 do { 执行语句 } while (条件表达式); 条件表达式必须是trur或false 二.do while语句特点 不论条件是否满足,都先执行一次执行语句 三.示例 ...

  5. 重写titleView

    在一些特定的情况下不能使用原有的titleView需要重写titleView代码如下 #import "TitleView.h" @implementation TitleView ...

  6. 使用HeartBeat实现高可用HA的配置过程详解

    一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...

  7. (转)JAVA的整型与字符串相互转换

    JAVA的整型与字符串相互转换1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或         ...

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

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

  9. 2017-2-20 C#基础 运算符

    C#的运算符主要分五种:算数运算符,关系运算符,逻辑运算符,条件运算符,赋值运算符.算术运算符有 + - * /  %    ++    --;关系运算符有    ==    !=    >   ...

  10. Ansible详解(一)

    简介 Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用.配置.编排task(持续交付.无宕机更新等).主版 ...