确定iPhone的硬件

时间:2010-08-16 13:35:56

标签: iphone cocoa-touch iphone-sdk-3.0 ios4 iphone-4

如何判断应用程序是在iPhone 4,iPhone 3GS还是iPad上运行?

我想确定我使用的是哪种硬件,然后提供附加功能,如果它是iPhone 4(例如使用视频灯或陀螺仪传感器)。

非常感谢任何帮助。

由于

PS:我希望以编程方式确定这一点,而不是根据外观确定。

2 个答案:

答案 0 :(得分:6)

而不是确定设备模型,您应该找到并使用API​​检查,如果需要,功能可用。例如,用于闪存的AVCaptureDevice的hasFlash属性和用于陀螺仪的CMMotionManager的gyroAvailable属性。

如果你的应用程序可以在iOS4之前的iOS上运行,你还应该执行额外的检查,如果上面列出的属性和类在运行时可用。

答案 1 :(得分:5)

RE:用于检测闪存是否可用的示例代码

   for (AVCaptureDevice *cameraDevice in [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]) {
        if ([cameraDevice hasFlash]) {
            NSLog(@" Yay! A flash!"):
        }
    }

但严肃的是,老兄弗拉基米尔给了你班级名称和方法名称。如果你已经打开了文档,那么你已经把它弄得一闪而光 - 肯定比等待有人粘贴你的五行代码更快。