我想使用我的应用程序知道我的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);
}
为什么我仍然得到错误的序列号?
最佳答案
您应该将IORegistryEntryCreateCFProperty
的参数2从CFSTR (kIOPlatformUUIDKey)
更改为CFSTR (kIOPlatformSerialNumberKey)
。然后您将获得正确的序列号(长度为11个字符)。