ios 获得设备型号方法
以前用UIScreen 的大小来判断设备类型,现在有了iphone6 和 iphone6 plus, 这种方法不能用了。因为当程序不提供相应的启动图片时,系统会把程序运行在320*568的size下,并把程序界面等比扩大,这样UIScreen 的大小就不能反映真实设备的分辨率了!见下面的截图
用以下方法解决,注意加头文件
#include "sys/sysctl.h"
- + (NSString*)getMachineName{
- size_t size;
- sysctlbyname("hw.machine", NULL, &size, NULL, );
- char *name = malloc(size);
- sysctlbyname("hw.machine", name, &size, NULL, );
- NSString *platform = [NSString stringWithCString:name encoding:NSUTF8StringEncoding];
- free(name);
- if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G (A1203)";
- if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G (A1241/A1324)";
- if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS (A1303/A1325)";
- 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)";
- 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;
- }
ios 获得设备型号方法的更多相关文章
- IOS 获取最新设备型号方法
1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct ...
- iOS获取设备型号、装置类型等信息
iOS获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设 ...
- iOS获取设备型号和App版本号等信息(OC+Swift)
iOS获取设备型号和App版本号等信息(OC+Swift) 字数1687 阅读382 评论3 喜欢10 好久没有写过博客了,因为中间工作比较忙,然后有些个人事情所以耽误了.但是之前写的博客还一直有人来 ...
- iOS获取设备型号的方法
1. [UIDevice currentDevice].model 自己写的看只抓到模拟器和iPhone.暂时不推荐. 2.自己写的找的方法再添加.直接 NSString * deviceMod ...
- iOS获取设备型号
导入头文件 #include <sys/types.h> #include <sys/sysctl.h> 直接调用 //获得设备型号 + (NSString *)getCurr ...
- iOS 获取设备型号以及IP地址
首先导入四个头文件 #include <sys/types.h> #include <sys/sysctl.h> #include <ifaddrs.h> #inc ...
- iOS 获取设备型号 ip6更新
//获得设备型号 + (NSString *)getCurrentDeviceModel:(UIViewController *)controller { ]; size_t len; char *m ...
- (转)iOS获取设备型号
//获得设备型号 + (NSString *)getCurrentDeviceModel:(UIViewController *)controller { ]; size_t len; char *m ...
- iOS获取设备型号、设备类型等信息
摘自 :http://www.mamicode.com/info-detail-1165460.html 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然 ...
随机推荐
- Promise编程基础
(一) Promise基础 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消 ...
- 用HTML/JS/PHP方式实现页面延时跳转
WEB开发中经常会遇到页面跳转或延时跳转的需求,掌握各种页面跳转方式非常必要. 以下是我总结有用HTML/JS/PHP三类方式实现跳转的方法,例子皆为三秒后跳转到index.php 页面. 1,HTM ...
- MySQL中MAX函数与Group By一起使用的注意事项(转)
mysql> select * from test; +----+-------+------+-------+ | id | name | age | class | +----+------ ...
- virtualBox切换到无缝模式后,如何调出菜单
host+c host就是指右边的那个ctrl键
- java项目命名规范
一.命名规范 1. 项目名全部小写 2. 包名全部小写 3. 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写. 如:public class MyFirstClass{} 4. 变量 ...
- django学习<二>:连接数据库
发现假如没有很迫切的实际需求或者外界的压力的话,我这种人就很容易偷懒,之前看了一篇比较权威的谈django的文章,里面列举支持的数据库只有四种, 可是我熟悉的数据库只有sqlserver,然后就又怠工 ...
- 自己用WordPress搭了个站点
这周买了台阿里云,用wordpress搭了个自己的站点,折腾了几天. 网站的网址是 http://www.smarteyeball.com/ ,取名慧眼网,宗旨是让大家发现新世界.
- 清北学堂模拟day6 花
[问题描述] 商店里出售n种不同品种的花.为了装饰桌面,你打算买m支花回家.你觉得放两支一样的花很难看,因此每种品种的花最多买1支.求总共有几种不同的买花的方案?答案可能很大,输出答案mod p的值. ...
- Vim编辑器运用的五个技巧
导读 如今 Vim 是每个人最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.大多数人只是熟悉Vim的最最基本的操作,只能在终端使用 Vim 修改文本,但是它并没有任何一个我想 ...
- Longest Common Substring
Given two strings, find the longest common substring. Return the length of it. Example Given A = &qu ...