是否有任何方法或黑客可以检测iOS安装的iPhone,iPad或iPod touch的颜色(黑/白)?
我想在黑色或白色设备的情况下加载相应的UI皮肤。
答案 0 :(得分:38)
有一个私有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版本中使用它。
答案 1 :(得分:20)
问题的答案是否(截至目前)和个人我认为它不值得,因为如果最终用户使用皮肤怎么办?还是为他的iPhone添加了一个外壳?
我建议最初询问用户“嘿,手机的颜色是什么?”然后做相应的事。
此外,一项研究为我提供了这些信息,我不确定它是 TRUE 还是会帮助你。
序列号是关键:)
如果aabccdddeef
是iPhone 4的序列号,ee
代表颜色,(A4 =黑色)。我希望你们中的一些人能够与你们一起查看这些信息,看看是否属实。
答案 2 :(得分:11)
仅需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
答案 3 :(得分:8)
根据网络上散布的信息,设备的颜色以序列号编码。 iFixit's blog表示第三个和倒数第二个位置包含信息:xxxxxxxxCCx
对于iPhone 4,A4
表示黑色。似乎没有人有白色iPhone 4的代码,这很奇怪。一个forum posting表示可能为DZ
。在这里,每个人似乎只是在嘲笑其他人的信息。
另一个网站mydigitallife.com有一篇文章列出了各种旧版本的颜色代码。在某些情况下,必须一起读取三个位置以确定颜色。根据该网站,所有 iPhone 3Gs型号在颜色代码位置都有3N
; 3NP
表示“黑色16GB 3G”,3NQ
表示“白色16GB 3G”。原始(2G)iPhone也使用所有三个位置来指示尺寸(没有颜色选项)。
此处已有一些问题可以帮助您获取设备的序列号。
答案 4 :(得分:6)
正如其他人所说,不,没有官方的方法来获取这些信息。 Apple清楚地知道(在同步时在iTunes中查看),因此他们可以使其可用。可能值得提高Radar。
答案 5 :(得分:6)
出于调试目的,我编译了一个更全面的可能deviceInfoForKey:
密钥列表。
有趣的注意事项(针对此问题)是DeviceRGBColor
DeviceEnclosureRGBColor
。这些值似乎是一个整数,表示0x00rrggbb
形式的RGB值。
这里,作为参考,我找到了所有的钥匙:
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
答案 6 :(得分:-1)
没有。无法检测任何设备的外部颜色。