40

iPhone 5c の発表後、iPhone 5c の色を取得する API を知っている人がいるかどうか知りたいです。デバイスの色に対応する UI の配色を読み込むと、誰もが便利になると確信しています。

UIColor を返す UIDevice カテゴリのようなものでラップすることを考えています。

更新: @ColinE と @Ortwin Gentz は、プライベート UIDevice インスタンス メソッド呼び出しの可用性を示しました。

iPhone 5c の場合、実際に探しているのは deviceEnclosureColor であることに注意してください。deviceColor は前面の色であるため、常に #3b3b3c を返すためです。

メソッドの署名:

-(id)_deviceInfoForKey:(struct __CFString { }*)arg1

そのための UIDevice カテゴリ:

@interface UIDevice (deviceColour)

- (id)_deviceInfoForKey:(struct __CFString { }*)arg1;
- (NSString*)deviceColourString_UntilAppleMakesItPublic;
- (NSString*)deviceEnclosureColour_UntilAppleMakesItPublic;


@end

@implementation UIDevice (deviceColour)

- (NSString*)deviceColourString_UntilAppleMakesItPublic
{
    return [self _deviceInfoForKey:@"DeviceColor"];
}

- (NSString*)deviceEnclosureColour_UntilAppleMakesItPublic
{
    return [self _deviceInfoForKey:@"DeviceEnclosureColor"];
}


@end
4

4 に答える 4

13

デバイスの色 (以前は?) は、デバイスのシリアル番号にエンコードされていました。まだ正式にリリースされていないデバイスでテストするデバイスはありませんが、ソリューションは次のようになると思います。

iPhone SN の一般的な形式は次のとおりです。

AA = 工場と機械の ID
B = 製造年 (9 は 2009/2019、0 は 2010/2020、1 は 2011 など)
CC = 製造週 (01 は B の第 1 週、11 は B の第 11 週、など)
DDD = 一意の識別子
EE = 色 (A4=黒)
F = サイズ (S=16GB、T=32GB)

[ソース]

ここに古い技術に関する詳細情報があります


ただし、シリアル番号を取得する方法はサポートされていないと思います。UI をカスタマイズできるようにこの情報だけを知りたいと仮定すると、ユーザー オプションを入力するか、最初の起動時 (またはアプリの他の初期段階) でデバイスの色を選択するように依頼するだけです。ユーザーライフ)

于 2013-09-12T16:41:29.447 に答える
3

Twitter で多くの人が次の方法を引用しています

[[UIDevice currentDevice] _deviceInfoForKey:@"DeviceColor"]

私自身は確認していませんが。

于 2013-09-21T10:25:18.967 に答える
0

これはあなたを助けるかもしれません...

UIDevice *device = [UIDevice currentDevice];
    SEL selector = NSSelectorFromString([device.systemVersion hasPrefix:@"7"] ? @"_deviceInfoForKey:" : @"deviceInfoForKey:");
    if ([device respondsToSelector:selector]) {
        NSLog(@"DeviceColor: %@ DeviceEnclosureColor: %@",
              [device performSelector:selector withObject:@"DeviceColor"],
              [device performSelector:selector withObject:@"DeviceEnclosureColor"]);
    }

参考:iPhone/iPad/iPod touchの色を検知?

于 2013-10-12T12:40:34.933 に答える