2013-01-10 124 views
5

可能重复的颜色:
Detecting Color of iPhone/iPod touch?检测的iPhone/iPod

是它在所有可以检测的iPhone/iPod的颜色 - 无论是本地或在移动浏览器?

我正在和一位喜欢让网络应用程序响应设备颜色的设计师合作。

enter image description here

+1

这将是一个非常酷的功能。尽管如果你绝望,让用户选择一个选项。 :) – Almo

+1

这将需要经验性测试,但可能是IMEI指示手机的颜色 – KevinDTimm

+1

这实际上是一种整洁的想法。嘿。 – ceejayoz

回答

5

我不认为这是可能的。内部硬件(“主板”将所有组件保存在一起以及组件本身)是在没有任何有关最终外壳的知识的情况下制造的。对于软件(固件和iOS)也是如此,因为除了可能嵌入在固件中的任何序列号,所有设备获得完全相同软件的相同副本,字节相同的字节。苹果可能会针对不同的外壳使用不同的设备序列号范围,但这只是一个疯狂的猜测。

这就像建造一辆汽车:所有零部件(发动机,电子设备等)都是同等制造的,无论最终的汽车涂上什么颜色。实际上,汽车是完全组装的,所有硬件和所有软件都可以使用,并且可以在涂上颜色之前使用;直到最后一秒,最终决定如何着色它可能会改变。


UPDATE

我做了一些关于这个论题进行更多的研究,我发现了“漫天要价”不是野生因为我认为它是。实际上,Apple似乎对不同的设备颜色使用不同的序列号范围。序列号(以及类似的数字,如iPhone的IMEI)是设备固件的唯一部分,对于制造的每个设备而言都是不同的。

苹果使用下列序列号格式在过去的(不知道这是否仍然是最新的,但它仍然是最多最新的iPhone 4):

AABCCDDDEEE 

AA = ID of the factory that manufactured the device. 
    B = Year of production: 8=>2008, 9=>2009, 0=>2010, 1=>2011, etc. 
CC = Week number of the year. 
DDD = Production index number, is reset every week, base-34 encoded. 
EEE = Model ID. 

的有趣的值是“型号ID”。同一代设备具有不同的型号ID,具体取决于它们的颜色和可用存储量。

虽然我还没有找到所有可能值的完整列表。即使有这样一个完整的列表,你仍然有问题需要保持最新,因为苹果公司不断发布新的模型,所以列表可能会在任何几个月过时(至少一年一次甚至两次)。下面是序列号(EEE)的最后3个位数的一些样本值:

VR0: iPhone 2G Silver 4GB 
WH8: iPhone 2G Silver 8GB 
0KH: iPhone 2G Silver 16GB 
Y7H: iPhone 3G Black 8GB 
Y7K: iPhone 3G Black 16GB 
3NP: iPhone 3GS Black 16GB 
3NR: iPhone 3GS Black 32GB 
3NQ: iPhone 3Gs White 16GB 
3NS: iPhone 3Gs White 32GB 
A4S: iPhone 4 Black 16GB 
A4T: iPhone 4 Black 32GB 

我还没有发现任何样本值当前的iPod一代至今。

+3

这是不正确的。 iTunes和Xcode通常会正确显示设备的颜色,所以它至少可以通过USB读取。 – grahamparks

+1

@grahamparks然后,苹果使用不同的序列号范围很可能就是这种情况。这对他们来说很好,因为只要这些范围发生变化,他们就会发布一个更新iTunes的更新范围数据库。为你自己的应用程序创建一个这样的数据库可能不是一个好主意,因为你很难保持它的最新状态。 – Mecki

-1

有没有办法做你在说什么......但是有很多方法可以让你获得颜色,你可以创建一个UIPickerView并在其中添加可供用户选择的颜色,例如。