是否有任何方法或黑客来检测安装了 iOS 的 iPhone、iPad 或 iPod touch 的颜色(黑色/白色)?
我想在黑色或白色设备的情况下加载相应的 UI 皮肤。
是否有任何方法或黑客来检测安装了 iOS 的 iPhone、iPad 或 iPod touch 的颜色(黑色/白色)?
我想在黑色或白色设备的情况下加载相应的 UI 皮肤。
有一个私有 API 可以同时检索DeviceColor
和DeviceEnclosureColor
.
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 使用皮肤或额外的外壳怎么办?
我建议首先问用户“嘿,你的手机是什么颜色的?” 然后做相应的事情。
此外,一项研究向我提供了此信息,我不确定它是否正确或是否会对您有所帮助。
序列号是关键:)
如果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 的代码,这很奇怪。一个论坛帖子表明它可能是DZ
. 每个人似乎都只是在这里复制其他人的信息。
另一个网站mydigitallife.com有一篇文章列出了各种旧型号的颜色代码。在某些情况下,必须一起读取三个位置以确定颜色。据本站介绍,所有iPhone 3Gs 机型均3N
在色码位置;3NP
表示“黑色 16GB 3Gs”,3NQ
表示“白色 16GB 3Gs”。最初的 (2G) iPhone 也使用所有三个位置来指示尺寸(没有颜色选项)。
这里已经有很多关于 SO 的问题可以帮助您获取设备的序列号。
出于调试目的,我编制了一个更全面的可能deviceInfoForKey:
键列表。
要注意的有趣键(对于这个问题)是DeviceRGBColor
DeviceEnclosureRGBColor
. 这些值似乎是一个整数,表示形式为 RGB 值0x00rrggbb
。
这里,作为参考,是我找到的所有键:
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
正如其他人所指出的,不,没有获取此信息的官方方式。Apple 清楚地知道(同步时查看 iTunes),因此他们可以提供它。可能值得提高雷达。