iOS 基本设备信息查询
开发中总会遇到很多需要查询设备及App信息的情况,有时候也是为了更好的用户体验或者为了bug跟踪,可能会需要获取用户的应用信息、系统信息、设备信息。这些信息的获取可以根据不同的设备或者App、系统版本来提供不同的功能或更好的用户体验,或者让开发者能更好的分析用户的问题原因。
因此我查询了很多资料,整理并更新记录起来,为了方便自己日后查询,同时分享给大家,不多说,撸代码吧.
(一)设备及App信息查询
1.获取设备名称
OC代码
1
|
NSString *deviceName = [[UIDevice currentDevice] name];
|
Swift代码
1
|
let deviceName = UIDevice.currentDevice().name
|
2.获取系统版本号
OC代码
1
|
NSString *sysVersion = [[UIDevice currentDevice] systemVersion];
|
Swift代码
1
|
let sysVersion = UIDevice.currentDevice().systemVersion
|
3.获取设备唯一标识符
OC代码
1
|
NSString *deviceUUID = [[[UIDevice currentDevice] identifierForVendor] ;
|
Swift代码
1
|
let deviceUUID = UIDevice.currentDevice().identifierForVendor?.UUIDString
|
4.获取设备型号
OC代码
1
|
NSString *deviceModel = [[UIDevice currentDevice] model];
|
Swift代码
1
|
let deviceModel = UIDevice.currentDevice().model
|
5.获取App相关的信息
OC代码
1
2
3
4
5
6
7
|
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
// 获取App的版本号
NSString *appVersion = [infoDic objectForKey:@ "CFBundleShortVersionString" ];
// 获取App的build版本
NSString *appBuildVersion = [infoDic objectForKey:@ "CFBundleVersion" ];
// 获取App的名称
NSString *appName = [infoDic objectForKey:@ "CFBundleDisplayName" ];
|
Swift代码
1
2
3
4
5
6
7
|
let infoDic = NSBundle.mainBundle().infoDictionary
// 获取App的版本号
let appVersion = infoDic?[ "CFBundleShortVersionString" ]
// 获取App的build版本
let appBuildVersion = infoDic?[ "CFBundleVersion" ]
// 获取App的名称
let appName = infoDic?[ "CFBundleDisplayName" ]
|
(二)iOS获取具体设备型号
OC代码获取iOS设备型号:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
// 需要#import + (NSString*)deviceModelName
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
//iPhone 系列
if ([deviceModel isEqualToString:@ "iPhone1,1" ]) return @ "iPhone 1G" ;
if ([deviceModel isEqualToString:@ "iPhone1,2" ]) return @ "iPhone 3G" ;
if ([deviceModel isEqualToString:@ "iPhone2,1" ]) return @ "iPhone 3GS" ;
if ([deviceModel isEqualToString:@ "iPhone3,1" ]) return @ "iPhone 4" ;
if ([deviceModel isEqualToString:@ "iPhone3,2" ]) return @ "Verizon iPhone 4" ;
if ([deviceModel isEqualToString:@ "iPhone4,1" ]) return @ "iPhone 4S" ;
if ([deviceModel isEqualToString:@ "iPhone5,1" ]) return @ "iPhone 5" ;
if ([deviceModel isEqualToString:@ "iPhone5,2" ]) return @ "iPhone 5" ;
if ([deviceModel isEqualToString:@ "iPhone5,3" ]) return @ "iPhone 5C" ;
if ([deviceModel isEqualToString:@ "iPhone5,4" ]) return @ "iPhone 5C" ;
if ([deviceModel isEqualToString:@ "iPhone6,1" ]) return @ "iPhone 5S" ;
if ([deviceModel isEqualToString:@ "iPhone6,2" ]) return @ "iPhone 5S" ;
if ([deviceModel isEqualToString:@ "iPhone7,1" ]) return @ "iPhone 6 Plus" ;
if ([deviceModel isEqualToString:@ "iPhone7,2" ]) return @ "iPhone 6" ;
if ([deviceModel isEqualToString:@ "iPhone8,1" ]) return @ "iPhone 6s" ;
if ([deviceModel isEqualToString:@ "iPhone8,2" ]) return @ "iPhone 6s Plus" ;
if ([deviceModel isEqualToString:@ "iPhone9,1" ]) return @ "iPhone 7 (CDMA)" ;
if ([deviceModel isEqualToString:@ "iPhone9,3" ]) return @ "iPhone 7 (GSM)" ;
if ([deviceModel isEqualToString:@ "iPhone9,2" ]) return @ "iPhone 7 Plus (CDMA)" ;
if ([deviceModel isEqualToString:@ "iPhone9,4" ]) return @ "iPhone 7 Plus (GSM)" ;
//iPod 系列
if ([deviceModel isEqualToString:@ "iPod1,1" ]) return @ "iPod Touch 1G" ;
if ([deviceModel isEqualToString:@ "iPod2,1" ]) return @ "iPod Touch 2G" ;
if ([deviceModel isEqualToString:@ "iPod3,1" ]) return @ "iPod Touch 3G" ;
if ([deviceModel isEqualToString:@ "iPod4,1" ]) return @ "iPod Touch 4G" ;
if ([deviceModel isEqualToString:@ "iPod5,1" ]) return @ "iPod Touch 5G" ;
//iPad 系列
if ([deviceModel isEqualToString:@ "iPad1,1" ]) return @ "iPad" ;
if ([deviceModel isEqualToString:@ "iPad2,1" ]) return @ "iPad 2 (WiFi)" ;
if ([deviceModel isEqualToString:@ "iPad2,2" ]) return @ "iPad 2 (GSM)" ;
if ([deviceModel isEqualToString:@ "iPad2,3" ]) return @ "iPad 2 (CDMA)" ;
if ([deviceModel isEqualToString:@ "iPad2,4" ]) return @ "iPad 2 (32nm)" ;
if ([deviceModel isEqualToString:@ "iPad2,5" ]) return @ "iPad mini (WiFi)" ;
if ([deviceModel isEqualToString:@ "iPad2,6" ]) return @ "iPad mini (GSM)" ;
if ([deviceModel isEqualToString:@ "iPad2,7" ]) return @ "iPad mini (CDMA)" ;
if ([deviceModel isEqualToString:@ "iPad3,1" ]) return @ "iPad 3(WiFi)" ;
if ([deviceModel isEqualToString:@ "iPad3,2" ]) return @ "iPad 3(CDMA)" ;
if ([deviceModel isEqualToString:@ "iPad3,3" ]) return @ "iPad 3(4G)" ;
if ([deviceModel isEqualToString:@ "iPad3,4" ]) return @ "iPad 4 (WiFi)" ;
if ([deviceModel isEqualToString:@ "iPad3,5" ]) return @ "iPad 4 (4G)" ;
if ([deviceModel isEqualToString:@ "iPad3,6" ]) return @ "iPad 4 (CDMA)" ;
if ([deviceModel isEqualToString:@ "iPad4,1" ]) return @ "iPad Air" ;
if ([deviceModel isEqualToString:@ "iPad4,2" ]) return @ "iPad Air" ;
if ([deviceModel isEqualToString:@ "iPad4,3" ]) return @ "iPad Air" ;
if ([deviceModel isEqualToString:@ "iPad5,3" ]) return @ "iPad Air 2" ;
if ([deviceModel isEqualToString:@ "iPad5,4" ]) return @ "iPad Air 2" ;
if ([deviceModel isEqualToString:@ "i386" ]) return @ "Simulator" ;
if ([deviceModel isEqualToString:@ "x86_64" ]) return @ "Simulator" ;
if ([deviceModel isEqualToString:@ "iPad4,4" ]
||[deviceModel isEqualToString:@ "iPad4,5" ]
||[deviceModel isEqualToString:@ "iPad4,6" ]) return @ "iPad mini 2" ;
if ([deviceModel isEqualToString:@ "iPad4,7" ]
||[deviceModel isEqualToString:@ "iPad4,8" ]
||[deviceModel isEqualToString:@ "iPad4,9" ]) return @ "iPad mini 3" ;
return deviceModel;
}
|
记得一定要#import啊
Swift代码获取iOS设备型号:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
//MARK: - UIDevice延展
public extension UIDevice {
var modelName: String {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce( "" ) { identifier, element in
guard let value = element.value as ? Int8 where value != 0 else { return identifier }
return identifier + String (UnicodeScalar(UInt8(value)))
}
switch identifier {
case "iPod5,1" : return "iPod Touch 5"
case "iPod7,1" : return "iPod Touch 6"
case "iPhone3,1" , "iPhone3,2" , "iPhone3,3" : return "iPhone 4"
case "iPhone4,1" : return "iPhone 4s"
case "iPhone5,1" , "iPhone5,2" : return "iPhone 5"
case "iPhone5,3" , "iPhone5,4" : return "iPhone 5c"
case "iPhone6,1" , "iPhone6,2" : return "iPhone 5s"
case "iPhone7,2" : return "iPhone 6"
case "iPhone7,1" : return "iPhone 6 Plus"
case "iPhone8,1" : return "iPhone 6s"
case "iPhone8,2" : return "iPhone 6s Plus"
case "iPhone9,1" : return "iPhone 7 (CDMA)"
case "iPhone9,3" : return "iPhone 7 (GSM)"
case "iPhone9,2" : return "iPhone 7 Plus (CDMA)"
case "iPhone9,4" : return "iPhone 7 Plus (GSM)"
case "iPad2,1" , "iPad2,2" , "iPad2,3" , "iPad2,4" : return "iPad 2"
case "iPad3,1" , "iPad3,2" , "iPad3,3" : return "iPad 3"
case "iPad3,4" , "iPad3,5" , "iPad3,6" : return "iPad 4"
case "iPad4,1" , "iPad4,2" , "iPad4,3" : return "iPad Air"
case "iPad5,3" , "iPad5,4" : return "iPad Air 2"
case "iPad2,5" , "iPad2,6" , "iPad2,7" : return "iPad Mini"
case "iPad4,4" , "iPad4,5" , "iPad4,6" : return "iPad Mini 2"
case "iPad4,7" , "iPad4,8" , "iPad4,9" : return "iPad Mini 3"
case "iPad5,1" , "iPad5,2" : return "iPad Mini 4"
case "iPad6,7" , "iPad6,8" : return "iPad Pro"
case "AppleTV5,3" : return "Apple TV"
case "i386" , "x86_64" : return "Simulator"
default : return identifier
}
}
}
|
(三)其他设备信息查询(不经常用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
- ( void )deviceInfo {
UIDevice *dev = [UIDevice currentDevice];
NSLog(@ "是否支持多任务:%@" , dev.multitaskingSupported?@ "是" :@ "否" );
NSLog(@ "设备名字:%@" , dev.name);
NSLog(@ "系统名字:%@" , dev.systemName);
NSLog(@ "设备model:%@" , dev.model);
NSLog(@ "设备本地化model:%@" , dev.localizedModel);
NSLog(@ "用户界面类型:%ld" , (long)dev.userInterfaceIdiom);
NSLog(@ "设备厂商标识:%@" , dev.identifierForVendor);
NSLog(@ "设备方向:%ld" , (long)dev.orientation);
NSLog(@ "是否可以生成设备方向通知:%@" , dev.generatesDeviceOrientationNotifications?@ "是" :@ "否" );
NSLog(@ "设备电量:%f" , dev.batteryLevel);
NSLog(@ "电量监测是否启用:%@" , dev.batteryMonitoringEnabled?@ "是" :@ "否" );
NSLog(@ "设备电量状态:%ld" , (long)dev.batteryState);
NSLog(@ "距离感应器是否可以使用:%@" , dev.proximityMonitoringEnabled?@ "是" :@ "否" );
NSLog(@ "距离感应器是否打开:%@" , dev.proximityState?@ "是" :@ "否" );
}
|
iOS 基本设备信息查询相关推荐
- 5.4版本内核ufs设备信息查询方式
本章主要介绍5.4版本内核中ufs存储设备的设备信息查询方法: ufs设备相关信息节点位于系统:/sys/devices/platform/soc/1d84000.ufshc目录下,具体如下: 其中: ...
- LG smartTV 设备信息查询
LG smartTV 设备信息查询方法可依据 LG 开发者网站,大体可分为两种方式: 1. API > Luna Service API 1.1 API > Luna Service AP ...
- ios获取设备信息,手机型号
获取手机设备信息 let deviceName = UIDevice.currentDevice().name //获取设备名称 例如:梓辰的手机 let sysName = UIDevice.cur ...
- iOS获取设备信息和获取当前屏幕状态
建议使用单利然后定义一个宏放到pch里, 这样比较方便下面是自己封装的一个类. (获取设备信息)上代码 /* CurrentDevice.h */ /* 提供两种单利创建方式 */ #import & ...
- ios获取设备信息总结
本文转载至 http://blog.csdn.net/decajes/article/details/41807977 1.获取设备的信息 [objc] view plaincopy UIDevice ...
- 史上最全的iOS各种设备信息获取总结(iPhone8/iPhone X 已更新)
不管是在Android开发还是iOS开发过程中,有时候我们需要经常根据设备的一些状态或信息进行不同的设置和性能配置,例如横竖屏切换时,电池电量低时,内存不够时,网络切换时等等,我们在这时候需要进行一些 ...
- 史上最全的iOS各种设备信息获取总结
http://www.cocoachina.com/ios/20171024/20890.html 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述一下各种信息的获 ...
- iOS: iOS各种设备信息获取
Author:si1ence Link:http://www.jianshu.com/p/b23016bb97af 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述 ...
- 史上最全的iOS各种设备信息获取总结(iPhone X 详细信息已更新)
2016.07.01 更新至iPhone X 新增设备颜色的获取 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述一下各种信息的获取方式: 点击下载以上展示效果的G ...
最新文章
- break continue 016
- sloth——算法工程师标注数据的福音
- java 销毁线程_线程 学习教程(一): Java中终止(销毁)线程的方法
- 基于CkEditor实现.net在线开发之路(1)
- [BUUCTF-pwn]——picoctf_2018_buffer overflow 1
- 面部识别公司深网视界泄露数百万人信息
- gdb调试的几点提示(1)
- Total Physical Response TPR
- 77-spark与storm比对与选型
- 计算机网络运输层习题5-17
- android怎样降版本,Android7.0 APP降级方法
- 网友对各种杀软的评价诗歌
- 计算机睡眠状态网络是断开的吗,电脑进入睡眠模式会自动断网如何解决
- Eclipse使用技巧--设置编辑器背景护眼色和设置字体
- C语言中 各数据类型求绝对值abs(),fabsf()等函数的使用。
- 期货大佬给交易者的交易箴言,值得珍藏品读!
- IOC 回顾 | 踏扁舟一叶 逐野鹤 行广阔
- PHP中的SAPI是什么?如何实现?
- IC验证-寄存器专项测试
- JS 手机浏览器唤醒手机QQ