[英]How to distinguish between iPhone 4 and iPhone 4s in javascript
[英]Distinguish between iPhone 4 and iPhone 4S
我需要区分iPhone 4S和iPhone 4.我浏览了帖子并获得了以下代码。 如果这是唯一的方法,请告诉我,如果使用Apple确认没有问题。
struct utsname systemInfo;
uname(&systemInfo);
NSString *iPhoneVersion = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
对于4S,iPhoneVersion字符串会给我iPhone4,1和iPhone 4会说iPhone3,1。
谢谢你的建议。
在CDMA型号的情况下,iPhone 4也可称为iPhone3,3
( 这里是一个不太新的列表 )。 通常,它更安全且“向前兼容”以测试平台的功能(例如[someSystemClass respondsToSelector:@selector(someMethodName)]
或类似),而不是基于设备模型手动确定功能。 你能说出为什么需要区分iPhone 4和4S吗?
正如其他人所建议的那样,您应该专注于您需要的功能,而不是选择特定的设备(如果Apple推出变体或下一个型号时将会中断)。 iPad上推出的唯一iPhone应用程序是那些进行硬件模型检测的应用程序,因为他们不知道iPad即将推出,因此无法查找特定的设备ID。
如果您的应用程序绝对无法在iPhone 4上运行,由于蓝牙4.0低功耗支持等特定硬件要求,您最好将bluetooth-le
添加到Info.plist中的UIRequiredDeviceCapabilities
,就像我在这里描述的那样。 这将阻止用户甚至在非4S设备上安装您的应用程序,但是留下了可能用于未来iPhone的可能性,这些iPhone很可能具有蓝牙低功耗硬件。
如果您需要扩展硬件功能以利用A5,您可能需要通过使用glGetString( GL_EXTENSIONS )
并检查APPLE_shadow_samplers
扩展来检查对A5所具有的一些新OpenGL ES扩展的APPLE_shadow_samplers
。 A4上没有这些扩展,但是A5上有这些扩展,应该可以用于Apple硬件的下一次迭代。
您也可以使用轻微记录的新Core Bluetooth框架在运行时测试设备中是否存在4.0低功耗硬件,但我没有花太多时间使用该框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.