美文网首页iOSiOS
iOS 获取手机的型号,系统版本,软件名称,软件版本,手机类型(

iOS 获取手机的型号,系统版本,软件名称,软件版本,手机类型(

作者: 887d1fc86fe6 | 来源:发表于2016-11-15 10:14 被阅读129次

// 手机序列号

NSString* identifierNumber = [[UIDevice currentDevice] uniqueIdentifier];

NSLog(@"手机序列号: %@",identifierNumber);

长期以来,iOS程序员们使用UIDevice.uniqueIdentifier作为追踪单一用户(设备)的标识。在iOS5.0 SDK中,我们可以看到uniqueIdentifier已经被注明为Deprecated的了,但是官方文档也提供了建议的替代方案,也就是本文的第一种替代方案。

方案一:

使用UUID,根据官方文档的说法:

Do not use theuniqueIdentifierproperty. To create a unique identifier specific to your app, you can call theCFUUIDCreatefunction to create a UUID, and write it to thedefaultsdatabase using theNSUserDefaultsclass.

我们应该使用CFUUIDCreate来创建一个UUID作为该用户(设备)在本应用的唯一标识,并且结合NSUserDefaults在第一次创建之后,一直使用该该UUID。稍后给出代码链接…

方案二:

使用MAC地址(网卡物理地址)

参考链接:http://iphonedevelopertips.com/device/determine-mac-address.html

但是使用MAC地址与使用uniqueIdentifier没有本质区别,还是违背了保护用户隐私的初衷,并且苹果未来完全可以采取相同的措施。

方案三:

使用第三方的服务,例如OpenFeint宣布的OFUIDOpenUDID,或者只允许注册会员使用,结合会员系统追踪用户。

// 手机别名: 用户定义的名称

NSString* userPhoneName = [[UIDevice currentDevice] name];

NSLog(@"手机别名: %@", userPhoneName);

// 设备名称

NSString* deviceName = [[UIDevice currentDevice] systemName];

NSLog(@"设备名称: %@",deviceName );

// 手机系统版本

NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];

NSLog(@"手机系统版本: %@", phoneVersion);

// 手机型号

NSString* phoneModel = [[UIDevice currentDevice] model];

NSLog(@"手机型号: %@",phoneModel );

// 地方型号(国际化区域名称)

NSString* localPhoneModel = [[UIDevice currentDevice] localizedModel];

NSLog(@"国际化区域名称: %@",localPhoneModel );

NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

// 当前应用名称

NSString *appCurName = [infoDictionary objectForKey:@"CFBundleDisplayName"];

NSLog(@"当前应用名称:%@",appCurName);

// 当前应用软件版本  比如:1.0.1

NSString *appCurVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];

NSLog(@"当前应用软件版本:%@",appCurVersion);

// 当前应用版本号码   int类型

NSString *appCurVersionNum = [infoDictionary objectForKey:@"CFBundleVersion"];

NSLog(@"当前应用版本号码:%@",appCurVersionNum);

结果:

2012-10-19 14:07:47.622 myDemo[5779:707] 手机序列号: 6685c75e34104be0b04c6ceb72985dc381f0f746

2012-10-19 14:07:47.624 myDemo[5779:707] 手机别名: “xxx”的 iPhone

2012-10-19 14:07:47.627 myDemo[5779:707] 设备名称: iPhone OS

2012-10-19 14:07:47.629 myDemo[5779:707] 手机系统版本: 10.1

2012-10-19 14:07:47.641 myDemo[5779:707] 手机型号: iPhone

2012-10-19 14:07:47.642 myDemo[5779:707] 国际化区域名称: iPhone

2012-10-19 14:07:47.643 myDemo[5779:707] 当前应用名称:myDemo

2012-10-19 14:07:47.645 myDemo[5779:707] 当前应用软件版本:1.0.1

2012-10-19 14:07:47.646 myDemo[5779:707] 当前应用版本号码:101

// 手机类型判断

// 需要导入头文件:#import <sys/utsname.h>

- (NSString*)iphoneType {

structutsnamesystemInfo;

uname(&systemInfo);

NSString*platform = [NSStringstringWithCString:systemInfo.machineencoding:NSASCIIStringEncoding];

if([platformisEqualToString:@"iPhone1,1"])return@"iPhone 2G";

if([platformisEqualToString:@"iPhone1,2"])return@"iPhone 3G";

if([platformisEqualToString:@"iPhone2,1"])return@"iPhone 3GS";

if([platformisEqualToString:@"iPhone3,1"])return@"iPhone 4";

if([platformisEqualToString:@"iPhone3,2"])return@"iPhone 4";

if([platformisEqualToString:@"iPhone3,3"])return@"iPhone 4";

if([platformisEqualToString:@"iPhone4,1"])return@"iPhone 4S";

if([platformisEqualToString:@"iPhone5,1"])return@"iPhone 5";

if([platformisEqualToString:@"iPhone5,2"])return@"iPhone 5";

if([platformisEqualToString:@"iPhone5,3"])return@"iPhone 5c";

if([platformisEqualToString:@"iPhone5,4"])return@"iPhone 5c";

if([platformisEqualToString:@"iPhone6,1"])return@"iPhone 5s";

if([platformisEqualToString:@"iPhone6,2"])return@"iPhone 5s";

if([platformisEqualToString:@"iPhone7,1"])return@"iPhone 6 Plus";

if([platformisEqualToString:@"iPhone7,2"])return@"iPhone 6";

if([platformisEqualToString:@"iPhone8,1"])return@"iPhone 6s";

if([platformisEqualToString:@"iPhone8,2"])return@"iPhone 6s Plus";

if([platformisEqualToString:@"iPhone8,4"])return@"iPhone SE";

if([platformisEqualToString:@"iPhone9,1"])return@"iPhone 7";

if([platformisEqualToString:@"iPhone9,2"])return@"iPhone 7 Plus";

if([platformisEqualToString:@"iPod1,1"])return@"iPod Touch 1G";

if([platformisEqualToString:@"iPod2,1"])return@"iPod Touch 2G";

if([platformisEqualToString:@"iPod3,1"])return@"iPod Touch 3G";

if([platformisEqualToString:@"iPod4,1"])return@"iPod Touch 4G";

if([platformisEqualToString:@"iPod5,1"])return@"iPod Touch 5G";

if([platformisEqualToString:@"iPad1,1"])return@"iPad 1G";

if([platformisEqualToString:@"iPad2,1"])return@"iPad 2";

if([platformisEqualToString:@"iPad2,2"])return@"iPad 2";

if([platformisEqualToString:@"iPad2,3"])return@"iPad 2";

if([platformisEqualToString:@"iPad2,4"])return@"iPad 2";

if([platformisEqualToString:@"iPad2,5"])return@"iPad Mini 1G";

if([platformisEqualToString:@"iPad2,6"])return@"iPad Mini 1G";

if([platformisEqualToString:@"iPad2,7"])return@"iPad Mini 1G";

if([platformisEqualToString:@"iPad3,1"])return@"iPad 3";

if([platformisEqualToString:@"iPad3,2"])return@"iPad 3";

if([platformisEqualToString:@"iPad3,3"])return@"iPad 3";

if([platformisEqualToString:@"iPad3,4"])return@"iPad 4";

if([platformisEqualToString:@"iPad3,5"])return@"iPad 4";

if([platformisEqualToString:@"iPad3,6"])return@"iPad 4";

if([platformisEqualToString:@"iPad4,1"])return@"iPad Air";

if([platformisEqualToString:@"iPad4,2"])return@"iPad Air";

if([platformisEqualToString:@"iPad4,3"])return@"iPad Air";

if([platformisEqualToString:@"iPad4,4"])return@"iPad Mini 2G";

if([platformisEqualToString:@"iPad4,5"])return@"iPad Mini 2G";

if([platformisEqualToString:@"iPad4,6"])return@"iPad Mini 2G";

if([platformisEqualToString:@"i386"])return@"iPhone Simulator";

if([platformisEqualToString:@"x86_64"])return@"iPhone Simulator";

returnplatform;

}

相关文章

网友评论

    本文标题:iOS 获取手机的型号,系统版本,软件名称,软件版本,手机类型(

    本文链接:https://www.haomeiwen.com/subject/bgvkpttx.html