J'écris une application iOS, et je dois être en mesure de détecter si l'appareil dispose d'un appareil photo. Auparavant, je vérifiais si l'appareil est un iPhone ou non, puisque seul l'iPhone a un appareil photo - mais avec le lancement de l'iPod Touch 4, ce n'est plus une option viable. L'application fonctionne sans caméra, mais la présence d'une caméra ajoute des fonctionnalités. Donc, quelqu'un peut-il me fournir un code qui renvoie s'il y a un appareil photo ou non?Détecter l'existence d'une caméra dans l'application iPhone?
Répondre
Vous pouvez utiliser la méthode +isSourceTypeAvailable:
dans UIImagePickerController:
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
// Has camera
Attention: Si la caméra est "restreinte", cela retournera faux même si une caméra existe. – pulse4life
Je travaille sur une application en ce moment avec l'accès à la caméra réglé à restreint, mais cela revient vrai, donc le commentaire de @ pulse4life n'est pas correct (du moins pas plus - en utilisant iOS 10). Pour l'autorisation d'accès, vous devez utiliser 'AVAuthorizationStatus'. – shim
Je viens de tester à nouveau sur iOS 10.3.2. Il retournera faux si la caméra a été restreinte sur votre appareil. Par restreint je veux dire aller à Paramètres> Général> Restrictions et éteindre l'appareil photo (cela est généralement fait par un administrateur système). Je crois que c'est le comportement voulu par Apple car il n'est techniquement pas disponible même si une caméra existe. – pulse4life
Oui, il y a une API fournie pour faire exactement cela:
BOOL isCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
Si vous utilisez les classes Foundation AV au lieu de UIImagePickerController vous peut faire:
BOOL hasCamera = ([[AVCaptureDevice devices] count] > 0);
Si vous utilisez UIImagePicker Contrôleur ça ne vaut probablement pas le coup, car il faudrait ajouter AVFoundation.framework à votre projet.
Cela ne fonctionne pas nécessairement. Si des restrictions ont éteint la caméra, cela pourrait sortir le microphone comme un appareil, mais aucune caméra ne serait disponible.Mieux vaut utiliser [[AVCaptureDevice devicesWithMediaType: AVMediaTypeVideo] count] – Jbryson
Si vous avez besoin de savoir si l'appareil est spécifiquement une caméra avant ou arrière, utilisez ceci:
isCameraAvailable = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
Cela devrait être la bonne réponse car cela ne dépend pas de l'état "restreint" – iGranDav
Swift:
if UIImagePickerController.isSourceTypeAvailable(.Camera){
//Your code goes here
//For example you can print available media types:
print(UIImagePickerController.availableMediaTypesForSourceType(.Camera))
}
Pour vérifier la caméra est disponible (Swift)
if(!UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera))
SWIFT
Comme Juan Boero écrit vérifier le:
if UIImagePickerController.isSourceTypeAvailable(.camera){ }
Mais j'ajouter une autre vérification pour voir si l'utilisateur autorisé à accéder à la caméra comme Apple suggère dans leur exemple PhotoPicker (PhotoPicker example Objective-C):
* S'il vous plaît noter que vous devez importer AVFoundation
let authStatus = AVCaptureDevice.authorizationStatus(forMediaType: AVMediaTypeVideo)
if authStatus == AVAuthorizationStatus.denied {
// Denied access to camera
// Explain that we need camera access and how to change it.
let dialog = UIAlertController(title: "Unable to access the Camera", message: "To enable access, go to Settings > Privacy > Camera and turn on Camera access for this app.", preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
dialog.addAction(okAction)
self.present(dialog, animated:true, completion:nil)
} else if authStatus == AVAuthorizationStatus.notDetermined { // The user has not yet been presented with the option to grant access to the camera hardware.
// Ask for it.
AVCaptureDevice.requestAccess(forMediaType: AVMediaTypeVideo, completionHandler: { (grantd) in
// If access was denied, we do not set the setup error message since access was just denied.
if grantd {
// Allowed access to camera, go ahead and present the UIImagePickerController.
self.showImagePickerForSourceType(sourceType: UIImagePickerControllerSourceType.camera)
}
})
} else {
// Allowed access to camera, go ahead and present the UIImagePickerController.
self.showImagePickerForSourceType(sourceType: UIImagePickerControllerSourceType.camera)
}
func showImagePickerForSourceType(sourceType: UIImagePickerControllerSourceType) {
let myPickerController = UIImagePickerController()
myPickerController.delegate = self;
myPickerController.sourceType = sourceType
self.present(myPickerController, animated: true, completion: nil)
}
merci pour le code exemple super pratique! – Fattie
- 1. Caméra iPhone dans le simulateur
- 2. IPhone - Rouleau de caméra dans l'application
- 3. Caméra iPhone et sélecteur d'image
- 4. iPhone; Continuously Get vidéo de la caméra
- 5. iPhone UIImagePicker Caméra en orientation paysage
- 6. IPhone SDK: Accès à la caméra?
- 7. Détecter région iphone
- 8. détecter shakes un iPhone
- 9. iPhone: Obtenir l'aperçu de la caméra
- 10. Détecter iPhone Browser
- 11. Comment faire pour détecter la caméra frontale Android par programme
- 12. Exemple de fonction de caméra dans l'application IPhone
- 13. Comment détecter Swipe Gesture dans iPhone SDK?
- 14. IPhone UIImagepicker avec caméra montrant la vignette de l'appareil photo comme l'application de caméra par défaut?
- 15. Détection de caméra Android
- 16. Définir une caméra frontale dans l'iPhone SDK
- 17. Capture d'une caméra iPhone à l'aide de QuickTime
- 18. Iphone Web view pendant l'utilisation de la caméra
- 19. Images de caméra iPhone comme textures OpenGL ES
- 20. Commandes de caméra iPhone personnalisées (n'utilisant pas UIImagePickerController)
- 21. Enregistrement vidéo de la caméra avant iPhone 4?
- 22. Caméra arrière iPhone 4 de qualité supérieure pour UIImageView?
- 23. iphone vue de la caméra avec une taille personnalisée
- 24. iPhone SDK - Comment prendre une photo avec vue caméra personnalisée?
- 25. iphone détecter nouvelle feuille de style
- 26. iphone: puis-je détecter un type d'URL?
- 27. Bizarre dans mon UIImagePickerController avec caméra
- 28. Comment détecter iPhone v. IPhone 3G avec Obj C
- 29. iPhone - Comment puis-je détecter la version iPhone?
- 30. Caméra d'accès dans l'application blackberry
Version rapide: [Link] (http://stackoverflow.com/a/33697919/1634890) –