我想知道使用我的应用程序的iPhone的序列号。我在下面写了代码。
- (NSString*)getSerialNumber
{
CFTypeRef serialNumberAsCFString;
io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice"));
if (platformExpert)
{
serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
}
IOObjectRelease(platformExpert);
NSString *serial = [[NSString alloc] initWithFormat:@"%@",serialNumberAsCFString];
NSLog(@"serail no==>%@",serialNumberAsCFString);
NSLog(@"serail no==>%@",serial);
}
为什么我的序列号仍然错误?
答案 0 :(得分:5)
您应该将IORegistryEntryCreateCFProperty
的参数2从CFSTR (kIOPlatformUUIDKey)
更改为CFSTR (kIOPlatformSerialNumberKey)
。然后您将获得正确的序列号(长度为11个字符)。
答案 1 :(得分:2)
您是否正在链接IOKit框架?
试试
id getValue(NSString *iosearch);
功能,可在
获取http://blogs.oreilly.com/iphone/2008/08/retrieving-device-information.html
您还可以使用UIDevice类检索其他有用信息 例如,你可以这样做:
NSString *id = [[UIDevice currentDevice] uniqueIdentifier];
其他有用的属性如下:
name
systemName
systemVersion
model
localizedModel
答案 2 :(得分:0)
准备在UIDevice上使用类别:UIDevice+serialNumber。不确定这将在App Store上被接受。