我想使用我的应用程序知道我的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个字符)。

10-08 05:54