2011-04-12 119 views
21

Apple建议不要搜索硬件版本,而是针对您感兴趣的特定功能。iPhone - 检测iDevice是否有前置摄像头

那么,如何检测设备上是否有前置摄像头能够禁用某些功能?

[UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]只说明有某个地方有相机。

回答

43

尝试的UIImagePickerController的这个方法:

+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice

这是一类方法和UIImagePickerControllerCameraDevice可以取两个值:

  • UIImagePickerControllerCameraDeviceRear
  • UIImagePickerControllerCameraDeviceFront

示例代码:

if([UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront ]) 
{ 
    // do something 
} 

请注意,这适用于iOS 4.0及更高版本。

+0

Joey:嗯,好的,但如果这是只支持iOS 4及更高版本,这可能是愚蠢的,但我可以如何检测一下摄像头的王可如果我的用户在3G与iOS 3,而不要求硬件? – Oliver 2011-04-12 00:54:51

+2

使用['isSourceTypeAvailable:'](http://developer.apple.com/library/ios/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html#//apple_ref/doc/uid/TP40007070-CH3-SW2 )。如果设备运行iOS3,则只有一个摄像头。 – 2011-04-12 01:01:01

+1

'[UIImagePickerController respondsToSelector:@selector(isCameraDeviceAvailable :)]'当然。 – 2011-04-12 02:50:21

3

在斯威夫特

imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.Front