iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P

2020-01-18 16:23:53王旭

获取设备信息总结

1、获取设备的信息


UIDevice *device = [[UIDevice alloc] int]; 
NSString *name = device.name; //获取设备所有者的名称 
NSString *model = device.name; //获取设备的类别 
NSString *type = device.localizedModel; //获取本地化版本 
NSString *systemName = device.systemName; //获取当前运行的系统 
NSString *systemVersion = device.systemVersion;//获取当前系统的版本

2、获取设备的唯一标示符


NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

3、为系统创建一个随机的标示符


(NSString*) createUUID 
{ 
NSString *id = [[NSUserDefaults standardUserDefaults] objectForKey:@"UUID"]; //获取标识为"UUID"的值 
if(id == nil) 
{ 
if([[[UIDevice currentDevice] systemVersion] floatValue] > 6.0) 
{ 
NSString *identifierNumber = [[NSUUID UUID] UUIDString]; //ios 6.0 之后可以使用的api 
[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@"UUID"]; //保存为UUID 
[[NSUserDefaults standardUserDefaults] synchronize]; 
} 
else{ 
CFUUIDRef uuid = CFUUIDCreate(NULL); 
CFStringRef uuidString = CFUUIDCreateString(NULL, uuid); //ios6.0之前使用的api 
NSString *identifierNumber = [NSString stringWithFormat:@"%@", uuidString]; 
[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@"UUID"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
CFRelease(uuidString); 
CFRelease(uuid); 
} 
return [[NSUserDefaults standardUserDefaults] objectForKey@"UUID"]; 
} 
return id; 
}

4、获取当前屏幕分辨率的信息


CGRect rect = [[UIScreen mainScreen] bounds]; 
CGFloat scale = [[UIScreen mainScreen].scale]; 
CGFloat width = rect.size.width * scale; 
CGFloat height = rect.size.height * scale;

5、获取运营商的信息

需要先导入头文件


#import <CoreTelephony/CTCarrier.h> 
#import <CoreTelephony/CTTelephonyNetworkInfo.h>

创建对象


CCTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];

获取运行商的名称


CTCarrier *carrier = [info subscriberCellularProvider]; 
NSString *mCarrier = [NSString stringWithFormat:@"%@",[carrier carrierName]];

获取当前网络的类型

ios7之后可以按照以下方式获取。方便而且类型多


NSString *mConnectType = [[NSString alloc] initWithFormat:@"%@",info.currentRadioAccessTechnology];

类型有以下:


CTRadioAccessTechnologyGPRS //介于2G和3G之间,也叫2.5G ,过度技术 
CTRadioAccessTechnologyEdge //EDGE为GPRS到第三代移动通信的过渡,EDGE俗称2.75G 
CTRadioAccessTechnologyWCDMA 
CTRadioAccessTechnologyHSDPA //亦称为3.5G(3?G) 
CTRadioAccessTechnologyHSUPA //3G到4G的过度技术 
CTRadioAccessTechnologyCDMA1x //3G 
CTRadioAccessTechnologyCDMAEVDORev0 //3G标准 
CTRadioAccessTechnologyCDMAEVDORevA 
CTRadioAccessTechnologyCDMAEVDORevB 
CTRadioAccessTechnologyeHRPD //电信使用的一种3G到4G的演进技术, 3.75G 
CTRadioAccessTechnologyLTE //接近4G