Определение цвета iPhone / iPad / iPod touch? - PullRequest
72 голосов
/ 11 декабря 2011

Есть ли способ или способ взломать, на каком цвете (черный / белый) iPhone, iPad или iPod touch установлена ​​iOS?

Я хочу загрузить соответствующие скины пользовательского интерфейса для устройств Black или White.

Ответы [ 7 ]

38 голосов
/ 11 октября 2013

Существует частный 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.

20 голосов
/ 11 декабря 2011

Ответ на вопрос: НЕТ (на данный момент) и лично Я не думаю, что это стоит много, потому что, если конечный пользователь использует скин илидополнительный корпус для его iPhone?

Я бы посоветовал сначала спросить пользователя: "Эй, какого цвета твой телефон?"и затем сделайте соответственно.


Кроме того, исследование предоставило мне эту информацию, я не уверен, является ли она ИСТИНА или поможет ли вам.

Серийный номер является ключом:)

Если aabccdddeef является серийным номером iPhone 4, ee представляет цвет (A4 = черный),Я надеюсь, что некоторые из вас здесь сверят эту информацию с вашей, чтобы убедиться, что это правда.

11 голосов
/ 22 сентября 2013

Только мои 2 цента - если кто-то ищет цвета iPhone 5c, цвета, приведенные ниже, выбираются с веб-сайта Apple.

Надеюсь, он кому-нибудь пригодится: -)

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
8 голосов
/ 11 декабря 2011

В соответствии с информацией, распространяемой по сети, цвет устройства закодирован в серийном номере. В блоге iFixit указано, что на позициях с третьей и второй до последней содержится информация: xxxxxxxxCCx Для iPhone 4 A4 означает черный цвет.Кажется, ни у кого нет кода для белого iPhone 4, что странно.Одно сообщение на форуме указывает, что может быть DZ.Кажется, что все просто попугайуют чужую информацию здесь.

На другом сайте, mydigitallife.com , есть статья, в которой перечислены цветовые коды для различных старых моделей.В некоторых случаях три позиции должны быть прочитаны вместе, чтобы определить цвет.Согласно этому сайту, все модели iPhone 3Gs имеют 3N в позиции цветового кода;3NP обозначает «черные 16GB 3Gs», а 3NQ обозначает «белые 16GB 3Gs».Оригинальный (2G) iPhone также использует все три позиции для указания размера (не было цветовых вариантов).

Здесь уже есть несколько вопросов по SO, которые помогут вам получить серийный номер устройства.

6 голосов
/ 13 июня 2014

Для целей отладки я составил более полный список возможных 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        
6 голосов
/ 11 декабря 2011

Как уже отмечали другие, нет, нет официального способа получить эту информацию.Apple четко знает (посмотрите в iTunes при синхронизации), чтобы они могли сделать его доступным.Может стоить поднять Радар .

0 голосов
/ 11 декабря 2011

Нет.Нет способа обнаружить внешний цвет любого устройства.

...