2011-04-12 3 views
21

Apple recommande de ne pas rechercher de version matérielle, mais de rechercher la fonction spécifique qui vous intéresse.iPhone - Détection de la présence d'une caméra frontale sur l'iDevice

Alors comment puis-je détecter s'il y a une caméra frontale sur l'appareil pour pouvoir désactiver certaines fonctions?

[UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera] indique seulement qu'il y a une caméra quelque part.

Répondre

43

Essayez cette méthode de UIImagePickerController:

+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice

C'est une méthode de classe et UIImagePickerControllerCameraDevice peut prendre deux valeurs:

  • UIImagePickerControllerCameraDeviceRear
  • UIImagePickerControllerCameraDeviceFront

Exemple de code:

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

Notez que cela est disponible pour iOS 4.0 et versions ultérieures.

+0

Uhhhh, ok, mais si cela est uniquement disponible pour iOS 4 et plus tard, qui peut être stupide, mais comment puis-je détecter quel est le roi de la caméra est disponible si mon utilisateur sur un réseau 3G avec iOS 3, sans demander le matériel? – Oliver

+2

utilisez ['isSourceTypeAvailable:'] (http://developer.apple.com/library/ios/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html#//apple_ref/doc/uid/TP40007070-CH3-SW2). Si l'appareil fonctionne sur iOS3, il n'y a qu'une seule caméra. –

+1

'[UIImagePickerController répondsToSelector: @selector (isCameraDeviceAvailable :)]' bien sûr. –

3

Swift

imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.Front 
Questions connexes