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来建立各个视图控制器间的关系.在需要用到代码进行切换时会 ...
随机推荐
- Git源码管理工具使用
注明:双击tap键为自动补全操作 1.视频地址:http://www.newbieol.com/course/index_102.html 2.sourcetree是一个拥有界面的git工具吧 下载官 ...
- springboot全局捕获异常
捕获 捕获原理,使用AOP技术,采用异常通知. 1.捕获返回json格式 2.捕获返回页面 步骤: 1.@ControllerAdvice(pasePackage="") 注释异常 ...
- How To Configure NetScaler AppFlow for SolarWinds
How To Configure NetScaler AppFlow for SolarWinds 来源 https://support.citrix.com/article/CTX227300 A ...
- 关于概率dp的HINT
摘自shadowice1984的blog 这里想讲一个关于概率题的小技巧,就是关于如何求某个事件发生的概率PP,事实上大家也清楚,除了一些特殊的近似算法之外,我们在程序中计算概率的方法无非就是加减乘除 ...
- 解决cuvid中的sample编译和链接问题
unzip Video_Codec_SDK_9.0.20.zip cd Video_Codec_SDK_9.0.20/Samples/AppDecode/AppDecImageProvider vi ...
- 微信公众号开发之access_token的全局共用
最近做微信公众号开发,涉及到access_token的缓存问题(避免各自的应用都去取access_token,同时解决微信 appid和appsecret的安全问题),在通用权限管理系统底层增加了实现 ...
- JavaEESpringMVC基础整理
1.什么是 SpringMVC ? 在介绍什么是 SpringMVC 之前,我们先看看 Spring 的基本架构.如下图: 我们可以看到,在 Spring 的基本架构中,红色圈起来的 Spring W ...
- Docker安装步骤
在学习springcloud的消息总线时,需要安装rabbitmq,因为rabbitmq是用erlang开发的,所以安装rabbitmq又需要先安装erlang,总之安装过程中遇到各种坑,然而最终还是 ...
- MySQL打包执行SQL
当一次业务处理计算服务和数据库交互较多时,将可能有大量时间浪费在数据传输上,尤其对于计算服务和数据库跨机房或跨地区部署时,浪费的时间会极其可观.为了减少时间浪费可以使用MySQL提供的SQL打包功能. ...
- antd table 点击行触发radio 或 checkbox
UIStore.ts (使用mobx) 1 import { observable, action, computed } from 'mobx' export class UIStore { @o ...