博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS获取手机与屏幕属性
阅读量:7075 次
发布时间:2019-06-28

本文共 7686 字,大约阅读时间需要 25 分钟。

hot3.png

1 UIDevice

    //设备相关信息的获取      NSString *strName = [[UIDevice currentDevice] name];      NSLog(@"设备名称:%@", strName);//e.g. "My iPhone"      NSString *strId = [[UIDevice currentDevice] uniqueIdentifier];      NSLog(@"设备唯一标识:%@", strId);//UUID,5.0后不可用            NSString *strSysName = [[UIDevice currentDevice] systemName];      NSLog(@"系统名称:%@", strSysName);// e.g. @"iOS"      NSString *strSysVersion = [[UIDevice currentDevice] systemVersion];      NSLog(@"系统版本号:%@", strSysVersion);// e.g. @"4.0"            NSString *strModel = [[UIDevice currentDevice] model];      NSLog(@"设备模式:%@", strModel);// e.g. @"iPhone", @"iPod touch"            NSString *strLocModel = [[UIDevice currentDevice] localizedModel];      NSLog(@"本地设备模式:%@", strLocModel);// localized version of model     //地方型号(国际化区域名称)            NSString* phoneModel = [[UIDevice currentDevice] model];      NSLog(@"手机型号: %@",phoneModel );   //手机型号

2 获得具体型号

//获得设备型号1.引入头文件。#include 
#include 
+ (NSString *)getCurrentDeviceModel:(UIViewController *)controller{    size_t size;    sysctlbyname("hw.machine", NULL, &size, NULL, 0);    char *machine = (char*)malloc(size);    sysctlbyname("hw.machine", machine, &size, NULL, 0);    NSString *platform = [NSString stringWithCString:machine                                            encoding:NSUTF8StringEncoding];        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;}

3 获得屏幕尺寸

#import 
enum {    // iPhone 4,4S 高清分辨率(640x960px)    UIDevice_iPhoneHiRes            = 1,    // iPhone 5 高清分辨率(640x1136px)    UIDevice_iPhone5                = 2,    // iPhone 6  高清分辨率(750x1134px)    UIDevice_iPhone6                = 3,    // iPhone 6+ 高清分辨率(1242x2208px)    UIDevice_iPhone6pluse           = 4,}; typedef NSUInteger UIDeviceResolution;@interface UIDevice (Resolutions)/****************************************************************************** 函数名称 : + (UIDeviceResolution) currentResolution 函数描述 : 获取当前分辨率 输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+ (UIDeviceResolution) currentResolution;/****************************************************************************** 函数名称 : + (UIDeviceResolution) currentResolution 函数描述 : 当前是否运行在iPhone5端 输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+ (BOOL)isRunningOniPhone5;/****************************************************************************** 函数名称 : + (BOOL)isRunningOniPhone 函数描述 : 当前是否运行在iPhone端 输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+ (BOOL)isRunningOniPhone;@end#import "UIDevice+Resolutions.h"@implementation UIDevice (Resolutions)/****************************************************************************** 函数名称 : + (UIDeviceResolution) currentResolution 函数描述 : 获取当前分辨率  输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+(UIDeviceResolution)currentResolution{        CGSize result = [[UIScreen mainScreen] bounds].size;    result = CGSizeMake(result.width * [UIScreen mainScreen].scale, result.height * [UIScreen mainScreen].scale);    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {        if (result.width == 640.0f) {            return (result.height == 960 ? UIDevice_iPhoneHiRes : UIDevice_iPhone5);        }else{            return (result.width == 750 ? UIDevice_iPhone6 : UIDevice_iPhone6pluse );        }    }    return 0;}/****************************************************************************** 函数名称 : + (UIDeviceResolution) currentResolution 函数描述 : 当前是否运行在iPhone5端 输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+ (BOOL)isRunningOniPhone5{    if ([self currentResolution] == UIDevice_iPhone5) {        return YES;    }    return NO;}/****************************************************************************** 函数名称 : + (BOOL)isRunningOniPhone 函数描述 : 当前是否运行在iPhone端 输入参数 : N/A 输出参数 : N/A 返回参数 : N/A 备注信息 : ******************************************************************************/+ (BOOL)isRunningOniPhone{    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);}@end

转载于:https://my.oschina.net/u/2346786/blog/414085

你可能感兴趣的文章
Java内存模型深度解析:重排序 --转
查看>>
CentOS防火墙iptables的配置方法详解
查看>>
webpack搭建前端一条龙服务
查看>>
1.ASP.NET MVC使用EPPlus,导出数据到Excel中
查看>>
nxn随机矩阵乘以概率向量依旧是概率向量
查看>>
【转载】TCP协议要点和难点全解
查看>>
mysql修改表、字段、库的字符集
查看>>
realm vs. domain
查看>>
关闭Spring Boot的Jsckson的FAIL_ON_EMPTY_BEANS
查看>>
Oracle 切割字符查询
查看>>
结构体内存对齐具体解释
查看>>
Cocos Code IDE里xcodeprojectlua脚本更新
查看>>
LEARN SWIFT
查看>>
jenkins指定具体项目具体分支进行构建部署
查看>>
关于音频文件的上传
查看>>
powershell入门教程-v0.3版
查看>>
nginx的proxy_cache缓存配置
查看>>
论文笔记:Variational Capsules for Image Analysis and Synthesis
查看>>
爬虫 大规模数据 采集心得和示例
查看>>
CentOS中利用Docker安装RabbitMQ
查看>>