检测iPhone / iPad / iPod touch的颜色?

有没有什么办法或黑客来检测iOS的安装是iPhone,iPad或iPod touch的颜色(黑/白)?

我想在黑色或白色设备的情况下加载相应的UI皮肤。

有一个私有的API来检索DeviceColorDeviceEnclosureColor

 UIDevice *device = [UIDevice currentDevice]; SEL selector = NSSelectorFromString(@"deviceInfoForKey:"); if (![device respondsToSelector:selector]) { selector = NSSelectorFromString(@"_deviceInfoForKey:"); } if ([device respondsToSelector:selector]) { NSLog(@"DeviceColor: %@ DeviceEnclosureColor: %@", [device performSelector:selector withObject:@"DeviceColor"], [device performSelector:selector withObject:@"DeviceEnclosureColor"]); } 

我已经博客了这个,并提供一个示例应用程序:

http://www.futuretap.com/blog/device-colors/

警告:如上所述,这是一个私人API。 不要在App Store中使用它。

问题的答案是否定的 (现在),我个人认为这不值得,因为如果最终用户为他的iPhone使用皮肤或者额外的shell怎么办?

我build议最初询问用户“嗨,你的手机的颜色是什么?” 然后做相应的处理。


此外,一项研究为我提供了这些信息,我不知道这是真的还是要帮助你。

序列号是关键:)

如果aabccdddeef是iPhone 4的序列号, ee代表颜色,(A4 =黑色)。 我希望你们中的一些人和你们一起检查这些信息,看看是否属实。

只是我的2美分的价值 – 如果有人正在寻找iPhone 5c的颜色,下面的颜色是从苹果网站挑选。

希望它对任何人都有用:-)

iPhone 5c颜色:

 Green R 179 G 243 B 142 HEX #B3F38E Blue R 123 G 195 B 252 HEX #7BC3FC Yellow R 255 G 243 B 141 HEX #FFF38D Red R 252 G 132 B 142 HEX #FF848E White R 239 G 239 B 239 HEX #EFEFEF 

根据撒在网上的信息,设备的颜色以编号编码。 iFixit的博客表明,第三个和倒数第二个职位持有的信息: xxxxxxxxCCx对于iPhone 4, A4表示黑色。 没有人似乎有一个白色的iPhone 4的代码,这是奇怪的。 一个论坛post表明它可能DZ 。 每个人似乎都在这里喋喋不休的每个人的信息。

另一个网站mydigitallife.com有一篇文章列出了各种旧型号的颜色代码。 在某些情况下,三个位置必须一起阅读,以确定颜色。 根据这个网站, 所有 iPhone 3Gs机型在色码位置都有3N ; 3NP表示“黑色16GB 3G”, 3NQ表示“白色16GB 3G”。 原来的(2G)iPhone也使用全部三个位置来指示大小(没有颜色选项)。

这里已经有很多关于SO的问题,可以帮助您获得设备的序列号。

正如其他人所指出的,不,没有官方的方式来获取这些信息。 苹果清楚知道(当你同步时看iTunes),所以他们可以使它可用。 可能值得提出一个雷达 。

为了进行debugging,我编译了一个更全面的可能的deviceInfoForKey: keys列表。

有趣的键注意(这个问题)是DeviceRGBColor DeviceEnclosureRGBColor 。 这些值似乎是一个整数,表示forms为0x00rrggbb的RGB值。

在这里,作为参考,我find了所有的钥匙:

 ActiveWirelessTechnology AirplaneMode assistant BasebandCertId BasebandChipId BasebandPostponementStatus BasebandStatus BatteryCurrentCapacity BatteryIsCharging BluetoothAddress BoardId BootNonce BuildVersion CertificateProductionStatus CertificateSecurityMode ChipID CompassCalibrationDictionary CPUArchitecture DeviceClass DeviceColor DeviceEnclosureColor DeviceEnclosureRGBColor DeviceName DeviceRGBColor DeviceSupportsFaceTime DeviceVariant DeviceVariantGuess DiagData dictation DiskUsage EffectiveProductionStatus EffectiveProductionStatusAp EffectiveProductionStatusSEP EffectiveSecurityMode EffectiveSecurityModeAp EffectiveSecurityModeSEP FirmwarePreflightInfo FirmwareVersion FrontFacingCameraHFRCapability HardwarePlatform HasSEP HWModelStr Image4Supported InternalBuild InverseDeviceID ipad MixAndMatchPrevention MLBSerialNumber MobileSubscriberCountryCode MobileSubscriberNetworkCode ModelNumber PartitionType PasswordProtected ProductName ProductType ProductVersion ProximitySensorCalibrationDictionary RearFacingCameraHFRCapability RegionCode RegionInfo SDIOManufacturerTuple SDIOProductInfo SerialNumber SIMTrayStatus SoftwareBehavior SoftwareBundleVersion SupportedDeviceFamilies SupportedKeyboards telephony UniqueChipID UniqueDeviceID UserAssignedDeviceName wifi WifiVendor 

没有。没有办法检测任何设备的外部颜色。