【问题标题】:Find iPhone Model information查找 iPhone 型号信息
【发布时间】:2010-10-21 20:26:23
【问题描述】:

虽然在您的应用程序中查找和使用这些信息并不是一个好习惯,但有没有办法找到您拥有的 iPhone / iPod / iPad 型号。例如:2G/3GS/4G等

【问题讨论】:

    标签: iphone


    【解决方案1】:

    试试:

    char    deviceString[256];
    size_t  size = 255;
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
    if (size > 255) { size = 255; }
    sysctlbyname("hw.machine", deviceString, &size, NULL, 0);
    if (strcmp(deviceString,"iPhone1,1") == 0) { etc... }  // 2G
    

    1,2是3G, 2,1是3GS, 3,1 是 i4 等。

    【讨论】:

    • 我试过了,'sysctlbyname' was not declared in this scope。如何申报?
    • 添加:#include 到相关的 .h 文件中。
    • 谢谢。你能用同样的方法找到 iPod/Pad 吗?
    • iPad1,1 等。网络上有这些设备名称的列表。或者,您可以从自己的设备上取下它们。
    • 是的,我使用了固件下载列表。它们的命名方式相同!谢谢:)
    【解决方案2】:

    我认为这里已经回答了这个问题:Determine device (iPhone, iPod Touch) with iPhone SDK,虽然我已经添加了一点:

    - (NSString *) platformString{
    NSString *platform = [self 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:@"i386"])   return @"iPhone Simulator";
    return platform;
    

    }

    以说明该系列最近增加的成员。您可以查看 everyipod.com,例如,specs for iPhone 4 以获取平台字符串。

    【讨论】:

    • @westsider iPhone 4GS 是否有平台字符串iPhone3,2
    • 我不能肯定地说,但上面提到的网站说 iPhone 4S(不是 GS)有平台字符串 iPhone 4,1。请参阅:everymac.com/systems/apple/iphone/specs/…HTH。
    【解决方案3】:

    -[UIDevice model],但我不确定它是否返回比“iPhone”或“iPod Touch”更具体的内容。

    【讨论】:

      【解决方案4】:

      我认为 iTunes/Xcode Organizer 出于某种原因已经这样做了(至少我似乎记得它正确地将我的旧 iPod Touch 识别为第一代),但我的 iPhone 3GS 绝对不是这种情况。 iPhone 配置实用程序也没有帮助。

      所以我启动了 System Profiler 以查看该设备是否出现在 USB 列表中;确实如此。它还显示“产品 ID”(在我的例子中为 0x1294)。我把它输入谷歌并想出了这个:

      http://theiphonewiki.com/wiki/index.php?title=Normal_Mode

      设备 ID

      它似乎使用了不同的设备 ID:

      iPhone - 0x1290

      iPod touch - 0x1291

      iPhone 3G - 0x1292

      iPod touch 2G - 0x1293

      iPhone 3GS - 0x1294

      iPod touch 3G - 0x1299

      iPad - 0x129a

      iPhone 4 -

      iPod touch 4G - 0x129e

      Apple TV 2G -

      【讨论】:

        猜你喜欢
        • 2015-06-05
        • 2020-11-05
        • 2012-10-19
        • 2013-05-09
        • 2023-03-31
        • 2012-02-28
        • 2014-03-08
        • 2011-06-05
        • 2012-11-21
        相关资源
        最近更新 更多