web-dev-qa-db-ja.com

iPhone / iPad / iPod touchの色を検出しますか?

IOSがインストールされているiPhone、iPad、iPod touchの色(黒/白)を検出する方法やハックはありますか?

黒または白のデバイスの場合、対応するUIスキンをロードしたいと思います。

72
totocaster

DeviceColorDeviceEnclosureColorの両方を取得するプライベートAPIがあります。

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ビルドではこれを使用しないでください。

38
Ortwin Gentz

質問への答えは[〜#〜] no [〜#〜](現在)およびpersonallyIです。エンドユーザーが自分のiPhoneにスキンまたは追加のケーシングを使用している場合はどうでしょうか。

最初に「お使いの携帯電話の色は何ですか?」とユーザーに尋ねることをお勧めします。そしてそれに応じて行います。


さらに、調査によりこの情報が提供されましたが、それが[〜#〜] true [〜#〜]であるかどうか、または役立つかどうかはわかりません。

シリアル番号が鍵です:)

aabccdddeefがiPhone 4のシリアル番号である場合、eeはカラーを表します(A4 =黒)。ここの何人かがあなたにこの情報をチェックして、これが真実であるかどうか確かめてほしいと思います。

20
COD3BOY

ちょうど私の2セント相当-誰かがiPhone 5cの色を探している場合、以下の色はApple Webサイトから選択されます。

それが誰にでも役立つことを願っています:-)

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
11
jwknz

ウェブに散りばめられた情報によると、デバイスの色はシリアル番号にエンコードされています。 iFixitのブログ は、最後から3番目と最後から2番目の位置に情報が保持されていることを示します:xxxxxxxxCCx iPhone 4の場合A4は黒を示します。奇妙なことに、白いiPhone 4のコードを持っている人はいません。 1つの フォーラム投稿 は、mightDZであることを示します。誰もが他のみんなの情報をここでオウムしているようです。

別のサイト mydigitallife.com には、さまざまな古いモデルのカラーコードをリストした記事があります。場合によっては、色を決定するために3つの位置を一緒に読み取る必要があります。このサイトによると、alliPhone 3Gモデルには3Nカラーコードの位置。 3NPは「ブラック16GB 3G」を示し、3NQは「ホワイト16GB 3G」を示します。元の(2G)iPhoneも3つの位置すべてを使用してサイズを示します(カラーオプションはありませんでした)。

SOには、デバイスのシリアル番号を取得するのに役立ついくつかの質問が既にあります。

8
Josh Caswell

デバッグの目的で、可能なdeviceInfoForKey:キーのより包括的なリストをコンパイルしました。

(この質問に対して)注目すべき興味深いキーはDeviceRGBColorDeviceEnclosureRGBColorです。値は、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
jjrscott

他の人が指摘したように、いいえ、この情報を取得する公式な方法はありません。 Appleは明確に知っている(同期するときにiTunesで確認する)ため、使用できるようになります。 a レーダー

6