当前位置:  开发笔记 > IOS > 正文

以编程方式识别iphone设备

如何解决《以编程方式识别iphone设备》经验,为你挑选了2个好方法。

我想确定安装我的应用程序的设备.这意味着,当我在iPhone上安装应用程序时,它应该告诉我设备信息.信息就像,设备是2G,3G或3GS.

目前我只获得设备的型号,名称,systemName,systemVersion.

我想知道该设备是2G,3G或3GS.

请帮我.



1> ohmantics..:

在过去的Mac编程历史中,这一直被认为是错误的问题.

您真正需要知道的是更具体的信息.为代码中的每个行为决策提出一个更狭隘的问题.例如,您可能需要知道设备是否具有GPS.另一个原因是你不应该根据它是什么型号设备来决定如何使用OpenGL堆栈,而是根据提供的OpenGL功能/扩展信息来决定.

您现在获得的信息来自UIDevice,这是一个设计不佳的API.它以最糟糕的格式为您提供完全错误的信息 - 字符串.

Erica Sadun对UIDevice有一个扩展,可能在这里很有用.它只是一个包装sysctlbyname("hw.machine", ...).每个型号的此属性都不同.

但同样,这通常是错误的问题.


同意.除非您正在开发一个只需清点公司机队中所有不同iPhone的应用程序,并且您需要能够对它们进行排序,否则您可能不需要知道它是3G还是3G,以及它是否支持您想要访问的功能.使用AvailibilityMacros查看设备是否支持您所需的功能.

2> Hiren..:

这是我在我的应用程序中使用的,它工作得很好

NSString *deviceType = [UIDevice currentDevice].model;
NSLog(@"DEVICE TYPE %@", deviceType);

struct utsname systemInfo;
uname(&systemInfo);

  - (NSString *) platformString{
NSString *platform =  [NSString stringWithCString:systemInfo.machine
                                     encoding:NSUTF8StringEncoding];    
NSLog(@"type ...%@", platform);


if ([platform isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";
if ([platform isEqualToString:@"iPhone3,1"])    return @"iPhone 4";
if ([platform isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";
if ([platform isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";
if ([platform isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";
if ([platform isEqualToString:@"iPad1,1"])      return @"iPad";
if ([platform isEqualToString:@"iPad2,1"])      return @"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"])      return @"iPad 2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"])      return @"iPad 2 (CDMA)";
if ([platform isEqualToString:@"i386"])         return @"Simulator";
return platform;
}

希望能帮助到你

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有