2011-04-12 12 views
21

Apple recomienda no buscar la versión del hardware, sino la función específica que le interesa.iPhone - Detectando si el dispositivo tiene una cámara frontal

Entonces, ¿cómo puedo detectar si hay una cámara frontal en el dispositivo para poder desactivar algunas funciones?

[UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera] solo dice que hay una cámara en alguna parte.

Respuesta

43

Pruebe este método de UIImagePickerController:

+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice

Este es un método de clase y UIImagePickerControllerCameraDevice puede tomar dos valores:

  • UIImagePickerControllerCameraDeviceRear
  • UIImagePickerControllerCameraDeviceFront

Código de ejemplo:

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

Tenga en cuenta que esto está disponible para iOS 4.0 y posterior.

+0

Uhhhh, bien, pero si esto sólo está disponible para iOS 4 y posterior, que puede ser estúpido, pero ¿en qué puedo detectar lo que está disponible rey de la cámara si mi usuario en un 3G con iOS 3, sin pedir el hardware? – Oliver

+2

use ['isSourceTypeAvailable:'] (http://developer.apple.com/library/ios/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html#//apple_ref/doc/uid/TP40007070-CH3-SW2) Si el dispositivo ejecuta iOS3, solo hay una cámara. –

+1

'[UIImagePickerController respondsToSelector: @selector (isCameraDeviceAvailable :)]' por supuesto. –

3

En Swift

imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.Front 
Cuestiones relacionadas