可能重复:使用iPhone SDK确定设备(iPhone,iPod Touch)
我正在制作一款利用iPhone的对等蓝牙功能的游戏(可能还有iPod touch第二代) . 但是,要阻止用户尝试在iPod 1st和iPhone 2G上播放多人游戏,我需要检查特定的设备型号 .
[[UIDevice currentDevice] model]只会告诉我该设备是“iPhone”还是“iPod touch” . 有没有办法检查特定的设备型号,如:“iPhone 3GS”,“iPod touch第一代”或类似的东西 .
EDIT:
UIDevice有一个类别(我认为它可以归功于它),它使用以下代码来获取特定的设备模型 . 你可以在这里找到整个类别以及其他有用的东西:https://github.com/erica/uidevice-extension
#include <sys/types.h>
#include <sys/sysctl.h>
@implementation UIDevice (Hardware)
/*
Platforms
iPhone1,1 -> iPhone 1G
iPhone1,2 -> iPhone 3G
iPod1,1 -> iPod touch 1G
iPod2,1 -> iPod touch 2G
*/
- (NSString *) platform
{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
return platform;
}
这项工作和使用它的应用程序最近已在AppStore中批准 .
6 回答
最完整的UIDevice(硬件)类别可能是http://github.com/erica/uidevice-extension/(由Erica Sadun提供):
您可以使用
sys/utsname.h
从sys/utsname.h
获取设备型号 . 例如:结果应该是:
这个代码怎么样,如果新版本发布,你将使用最后知道的设备识别
iPhone 4是iPhone3,1和iPhone3,2
iPhone 4S是iPhone4,1
iPad 2是iPad2,1 iPad2,2和iPad2,3,视版本而定(GSM等)
iPad 3是iPad3,1 iPad3,2和iPad3,3取决于版本(GSM等)
见Iphone secrets(向下滚动到"internal product codes")
另一个好消息来源是:everyiphone.com
然后检查字符串是否等于您要查找的任何设备:
你应该好好去