Có cách nào hay hack để phát hiện trên iPhone (iPad/iPhone) màu đen, iPad hoặc iPod touch nào được cài đặt trên iOS?Phát hiện màu của iPhone/iPad/iPod touch?
Tôi muốn tải giao diện người dùng tương ứng trong trường hợp thiết bị màu đen hoặc trắng.
Có cách nào hay hack để phát hiện trên iPhone (iPad/iPhone) màu đen, iPad hoặc iPod touch nào được cài đặt trên iOS?Phát hiện màu của iPhone/iPad/iPod touch?
Tôi muốn tải giao diện người dùng tương ứng trong trường hợp thiết bị màu đen hoặc trắng.
Có một API riêng để lấy cả DeviceColor
và 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"]);
}
tôi đã viết blog về vấn đề này và cung cấp một ứng dụng mẫu:
http://www.futuretap.com/blog/device-colors/
Cảnh báo: Như đã đề cập, đây là một API tư nhân. Không sử dụng tính năng này trong xây dựng App Store.
Rất đẹp! Một gợi ý nhỏ: Bạn nên sử dụng '[NSObject -respondsToSelector:]'. Logic hiện tại của bạn có thể hoạt động không chính xác khi iOS 8 được phát hành. –
Điều này vẫn sẽ sử dụng 'deviceInfoForKey cũ hơn 'trên iOS 8. Tôi sẽ chỉ kiểm tra cả hai bộ chọn và xem cái nào nó phản hồi. –
@uchuugaka Tôi không giấu sự thật là riêng tư. Nhưng đó là cách duy nhất để lấy lại nó. Tuy nhiên, có một số trường hợp sử dụng cho các API riêng tư - ví dụ như các ứng dụng doanh nghiệp trong nhà. Khiếu nại với Apple (bạn có thể lừa http://openradar.appspot.com/15209345), thay vì downvoting câu trả lời của tôi! –
Câu trả lời cho câu hỏi là NO (tính đến nay) và cá nhân Tôi không nghĩ rằng nó có giá trị hơn nhiều, bởi vì những gì nếu người dùng cuối sử dụng một làn da hoặc vỏ bổ sung cho iPhone của mình?
Tôi muốn đề xuất ban đầu hỏi người dùng "Này, màu của điện thoại của bạn là gì?" và sau đó làm tương ứng.
Thêm vào đó, một nghiên cứu cung cấp cho tôi thông tin này, tôi không chắc chắn nếu nó TRUE hoặc nếu đang xảy ra để giúp bạn.
Số sê-ri là chìa khóa :)
Nếu aabccdddeef
là số serial của iPhone 4, ee
đại diện cho màu, (A4 = đen). Tôi hy vọng một số bạn ở đây kiểm tra thông tin này với bạn để xem điều này có đúng không.
Tôi có một iPhone 4S màu đen và một màu trắng ... Các chữ số cuối cùng thứ hai và thứ ba của cả hai đều là "TF" ... (Số sê-ri: "C39GJ *** DTFC" và "C39GK *** DTF9"). Chúng ta cần phải tiếp tục tìm kiếm. –
Hơn nữa, người ta không thể phát hiện số sê-ri theo chương trình (ít nhất là bằng cách sử dụng API đã xuất bản). Vì vậy, cách tiếp cận số sê-ri là DoA. –
Cảm ơn bạn đã trả lời, tôi đánh giá cao nó. Trong "hack" tôi có nghĩa là một cái gì đó giống như kiểm tra số serial hoặc tương tự. Tôi nhận ra rằng không có điều '[IUDevice deviceColor]' trong SDK hiện tại. Tôi đang làm nghiên cứu của riêng tôi và giữ cho bạn được đăng. – totocaster
Không. Không có cách nào để phát hiện màu bên ngoài của bất kỳ thiết bị nào.
Theo thông tin được rải rác trên web, màu của thiết bị được mã hóa trong số sê-ri. iFixit's blog cho biết vị trí thứ ba và thứ hai-đến-cuối giữ thông tin: xxxxxxxxCCx
Đối với iPhone 4, A4
cho biết màu đen. Không ai dường như có mã cho một chiếc iPhone 4 màu trắng, điều này thật kỳ lạ. Một forum posting cho biết rằng có thể là DZ
. Mọi người dường như chỉ là vẹt thông tin của mọi người khác ở đây.
Một trang web khác, mydigitallife.com, có một bài viết liệt kê mã màu cho các kiểu cũ hơn. Trong một số trường hợp, ba vị trí phải được đọc cùng nhau để xác định màu sắc. Theo trang web này, tất cả các mẫu iPhone 3Gs có 3N
ở vị trí mã màu; 3NP
cho biết "Black 16GB 3Gs" và 3NQ
cho biết "White 16GB 3Gs". IPhone (2G) ban đầu cũng sử dụng cả ba vị trí để biểu thị kích thước (không có tùy chọn màu sắc).
Đã có một số câu hỏi ở đây trên SO sẽ giúp bạn lấy số sê-ri của thiết bị.
Chỉ cần 2 xu giá trị của tôi - nếu có ai đang tìm kiếm màu sắc của iPhone 5c, các màu bên dưới được chọn từ trang web của Apple.
Hy vọng nó là sử dụng cho bất cứ ai :-)
Màu sắc 5c iPhone:
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
Vì mục đích gỡ lỗi, tôi đã biên soạn một danh sách toàn diện hơn về các khóa deviceInfoForKey:
có thể có.
Các phím thú vị cần lưu ý (cho câu hỏi này) là DeviceRGBColor
DeviceEnclosureRGBColor
. Các giá trị xuất hiện là một số nguyên đại diện cho giá trị RGB ở dạng 0x00rrggbb
.
Ở đây, để tham khảo, là tất cả các phím tôi thấy:
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
ý tưởng tuyệt vời !!!! – Fattie