是否有任何方法或黑客檢測iPhone的安裝iOS(黑色/白色)iPhone,iPad或iPod touch?檢測iPhone/iPad/iPod touch的顏色?
我想在黑色或白色設備的情況下加載相應的UI皮膚。
是否有任何方法或黑客檢測iPhone的安裝iOS(黑色/白色)iPhone,iPad或iPod touch?檢測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構建中使用它。
很好找!一個小建議:你應該使用'[NSObject -respondsToSelector:]'。 iOS 8發佈時,您當前的邏輯可能會無法正常工作。 –
這仍然會在iOS 8上使用舊的'deviceInfoForKey:'。我只需檢查兩個選擇器並查看它響應哪一個。 –
@uchuugaka我沒有隱瞞事實是私密的。但這是檢索它的唯一方法。儘管如此,私有API仍然有一些用例 - 例如內部企業應用程序。抱怨蘋果(你可以用http://openradar.appspot.com/15209345),而不是降低我的答案! –
的問題的答案是NO (截至目前)和親自我不認爲這是值得很多,因爲如果最終用戶使用的皮膚或他的iPhone附加套是什麼?
我建議最初詢問用戶「嘿,你的手機的顏色是什麼?」然後做相應的處理。
此外,研究爲我提供了這個信息,我不知道這是否是TRUE或是否會幫助你。
序列號是關鍵:)
aabccdddeef
如果是iPhone 4的序列號,ee
代表顏色,(A4 =黑)。我希望你們中的一些人與你們一起檢查這些信息,看看是否屬實。
我有一個黑色的iPhone 4S和一個白色的...他們兩個的第二個和第三個數字是「TF」...(序列號:「C39GJ *** DTFC」和「C39GK *** DTF9」 )。我們需要繼續尋找。 –
此外,無法以編程方式檢測序列號(至少通過使用發佈的API)。所以序列號方法是DoA。 –
感謝您的回覆,我很感激。在「黑客」中,我的意思是像序列號檢查或類似的東西。我意識到當前SDK中沒有'[IUDevice deviceColor]'的東西。我正在做我自己的研究,並保持你的發佈。 – totocaster
不可以。沒有辦法檢測任何設備的外部顏色。
根據撒在網上的信息,設備的顏色編碼爲序列號。 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也使用全部三個位置來指示大小(沒有顏色選項)。
這裏有很多關於SO的問題可以幫助您獲得設備的序列號。
只是我的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
爲了便於調試,我編制了一個更全面的可能的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
偉大的想法!!!! – Fattie