iOS开发之获取设备类型
1、简单判断是否是iPad方法
/** 判断是不是iPad*/
+ (BOOL)isiPadDevice
{
return UIUserInterfaceIdiomPad == [UIDevice currentDevice].userInterfaceIdiom;
}
2、复杂的获取详细设备信息
引用头文件
#import <sys/utsname.h>
然后获取设备的model
struct utsname systemInfo;
uname(&systemInfo);
NSString *model = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
NSString *deviceModelName = [self currentModel:model];
再根据设备model获取对应的型号
- (NSString *)currentModel:(NSString *)phoneModel {
//判断手机类型
if ([phoneModel isEqualToString:@"iPhone3,1"] ||
[phoneModel isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
if ([phoneModel isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([phoneModel isEqualToString:@"iPhone5,1"] ||
[phoneModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
if ([phoneModel isEqualToString:@"iPhone5,3"] ||
[phoneModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5C";
if ([phoneModel isEqualToString:@"iPhone6,1"] ||
[phoneModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5S";
if ([phoneModel isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([phoneModel isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([phoneModel isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([phoneModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([phoneModel isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
if ([phoneModel isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([phoneModel isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if ([phoneModel isEqualToString:@"iPhone10,1"] ||
[phoneModel isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
if ([phoneModel isEqualToString:@"iPhone10,2"] ||
[phoneModel isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
if ([phoneModel isEqualToString:@"iPhone10,3"] ||
[phoneModel isEqualToString:@"iPhone10,6"]) return @"iPhone X";
if([phoneModel isEqualToString:@"iPhone11,8"]) return @"iPhone XR";
if([phoneModel isEqualToString:@"iPhone11,2"]) return @"iPhone XS";
if([phoneModel isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";
//判断iPad类型
if ([phoneModel isEqualToString:@"iPad1,1"]) return @"iPad";
if ([phoneModel isEqualToString:@"iPad2,1"] ||
[phoneModel isEqualToString:@"iPad2,2"] ||
[phoneModel isEqualToString:@"iPad2,3"] ||
[phoneModel isEqualToString:@"iPad2,4"]) return @"iPad 2";
if ([phoneModel isEqualToString:@"iPad3,1"] ||
[phoneModel isEqualToString:@"iPad3,2"] ||
[phoneModel isEqualToString:@"iPad3,3"]) return @"iPad 3";
if ([phoneModel isEqualToString:@"iPad3,4"] ||
[phoneModel isEqualToString:@"iPad3,5"] ||
[phoneModel isEqualToString:@"iPad3,6"]) return @"iPad 4";
if ([phoneModel isEqualToString:@"iPad4,1"] ||
[phoneModel isEqualToString:@"iPad4,2"] ||
[phoneModel isEqualToString:@"iPad4,3"]) return @"iPad Air";
if ([phoneModel isEqualToString:@"iPad5,3"] ||
[phoneModel isEqualToString:@"iPad5,4"]) return @"iPad Air 2";
if ([phoneModel isEqualToString:@"iPad6,3"] ||
[phoneModel isEqualToString:@"iPad6,4"]) return @"iPad Pro 9.7-inch";
if ([phoneModel isEqualToString:@"iPad6,7"] ||
[phoneModel isEqualToString:@"iPad6,8"]) return @"iPad Pro 12.9-inch";
if ([phoneModel isEqualToString:@"iPad6,11"] ||
[phoneModel isEqualToString:@"iPad6,12"]) return @"iPad 5";
if ([phoneModel isEqualToString:@"iPad7,1"] ||
[phoneModel isEqualToString:@"iPad7,2"]) return @"iPad Pro 12.9-inch 2";
if ([phoneModel isEqualToString:@"iPad7,3"] ||
[phoneModel isEqualToString:@"iPad7,4"]) return @"iPad Pro 10.5-inch";
if ([phoneModel isEqualToString:@"iPad2,5"] ||
[phoneModel isEqualToString:@"iPad2,6"] ||
[phoneModel isEqualToString:@"iPad2,7"]) return @"iPad mini";
if ([phoneModel isEqualToString:@"iPad4,4"] ||
[phoneModel isEqualToString:@"iPad4,5"] ||
[phoneModel isEqualToString:@"iPad4,6"]) return @"iPad mini 2";
if ([phoneModel isEqualToString:@"iPad4,7"] ||
[phoneModel isEqualToString:@"iPad4,8"] ||
[phoneModel isEqualToString:@"iPad4,9"]) return @"iPad mini 3";
if ([phoneModel isEqualToString:@"iPad5,1"] ||
[phoneModel isEqualToString:@"iPad5,2"]) return @"iPad mini 4";
//判断iTouch
if ([phoneModel isEqualToString:@"iPod1,1"]) return @"iTouch";
if ([phoneModel isEqualToString:@"iPod2,1"]) return @"iTouch2";
if ([phoneModel isEqualToString:@"iPod3,1"]) return @"iTouch3";
if ([phoneModel isEqualToString:@"iPod4,1"]) return @"iTouch4";
if ([phoneModel isEqualToString:@"iPod5,1"]) return @"iTouch5";
if ([phoneModel isEqualToString:@"iPod7,1"]) return @"iTouch6";
//判断模拟器
if ([phoneModel isEqualToString:@"i386"] || [phoneModel isEqualToString:@"x86_64"]) return @"iPhone Simulator";
return @"Unknown";
}
iOS开发之获取设备类型的更多相关文章
- 李洪强iOS开发-网络新闻获取数据思路回顾
李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据 1.1 定义类方法返回单例对 ...
- iOS开发之获取沙盒路径
iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的 ...
- iOS开发中获取WiFi相关信息
iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...
- iOS开发中获取视图在屏幕上显示的位置
在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可 ...
- [转载]iOS开发:获取设备信息
开发iOS平台的应用的时候,可以获取iOS设备的设备信息,包括设备的名称,设备的机型,设备的iOS版本等等.设备信息主要来自 UIDevice 类. UIDevice *currentDevice = ...
- iOS开发之 -- 获取设备的唯一标示符
各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...
- IOS 开发之--获取真机的deviceToeken
获取真机的devicetoken的方法: #pragma mark 注册APNs成功并上报DeviceToken - (void)application:(UIApplication *)applic ...
- iOS开发时获取第一响应者
上篇中提到键盘相应时间中用到了获取当前第一响应者的方法是苹果的是有方法,无法上传到App Store,本文将介绍一种非常简单的且未用到私有API的方法来获取当前第一响应者. 实现思路:用到的iOS A ...
- IOS开发之获取Storyboard创建的ViewController
前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换.视图间的切换我们可以用代码完成或者用storyboard来建立各个视图控制器间的关系.在需要用到代码进行切换时会 ...
随机推荐
- ZuulFilter 执行顺序
说明: 创建了两个Filter,分别是 PreFilter public class PreFilter extends ZuulFilter { public PreFilter() { super ...
- 原型模式-Prototype(Java实现)
原型模式-Prototype 通过复制(克隆.拷贝)一个指定类型的对象来创建更多同类型的对象. 就像去蛋糕店买蛋糕一样. 柜台里的蛋糕都是非卖品. 只是为顾客提供一种参照. 当顾客看上某一个样式的蛋糕 ...
- jQuery 条件搜索查询 实时取值 升降序排序
一.鼠标点击获取搜索条件中的被选中的值 创建方法 getAttrValue() 方法,每次的 .click 都要调用 function getAttrValue(){} 例如,把选中的值给到属性 ...
- 使用JQuery实现图片轮播效果
[效果如图] [原理简述] 这里大概说一下整个流程: 1,将除了第一张以外的图片全部隐藏, 2,获取第一张图片的alt信息显示在信息栏,并添加点击事件 3,为4个按钮添加点击侦听,点击相应的按钮,用f ...
- 命令链接按钮QCommandLinkButton
继承QPushButton 它的用途类似于单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了 ...
- git错误记录及解决
一.git每次提交.拉取都要输用户名和密码 问题描述:每次提交.拉取文件时都要输用户名和密码,特别麻烦 原因:在git上面注册了用户名a,然后本机安装了TortoiseGit工具,登录时会在本机C:\ ...
- JAVA进阶15
间歇性混吃等死,持续性踌躇满志系列-------------第15天 1.TCP网络程序 package code0329; import java.io.BufferedReader; import ...
- angular Observable
1.回调函数 /** 1.设计实现函数 */ print_msg(msg) { console.log(msg); } /** 2.设计调用函数,param1:实现函数参数,param2:实现函数本身 ...
- jetty切换tomcat中文乱码
项目中文在jetty下正常,换tomcat下出现乱码. 问题是web.xml中的encodingFilter不是第一个,要设置为第一个 <filter> <filter-name&g ...
- The Ethereum devp2p and discv4 protocol Part I
描述 本文章分上下两篇 上篇:讲述以太坊devp2p与disc4节点发现协议 下篇:实践篇,实现如何获取以太坊所有节点信息(ip,port,nodeId,client,type,os) 正文 devp ...