SWIFT
per decidere se il pulsante della fotocamera dovrebbe nemmeno essere abilitato (o nascosta) Si dovrebbe controllare il:
if UIImagePickerController.isSourceTypeAvailable(.Camera){ }
Ma poi vorrei controllare per vedere se l'utente ha consentito l'accesso alla fotocamera come suggerisce Apple nell'esempio PhotoPicker (PhotoPicker example Objective-C):
* per favore nota che devi importare 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)
}
fonte
2017-05-03 10:41:54
Perché non provi tu stesso? Perché pubblicare una domanda? – rmaddy
L'ho provato e sono stato in grado di rilevare se il dispositivo ha una fotocamera o meno ma non riesco a rilevare quando il dispositivo ha una fotocamera ma è limitato in modo da non poterlo utilizzare. –
Scusa, penso di aver letto male ciò che hai fatto. Ho pensato che stavi chiedendo se quel codice funziona se la telecamera è stata limitata. Questo è il motivo per cui ti ho suggerito di testarlo. Per curiosità, se si imposta un dispositivo con una telecamera con restrizioni, cosa restituisce 'isSourceTypeAvailable'? – rmaddy