Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func checkCamera() {
- let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
- switch authStatus {
- case AVAuthorizationStatus.Authorized: // Do you stuffer here i.e. allowScanning()
- case AVAuthorizationStatus.Denied: alertToEncourageCameraAccessInitially()
- case AVAuthorizationStatus.NotDetermined: alertPromptToAllowCameraAccessViaSetting()
- default: alertToEncourageCameraAccessInitially()
- }
- }
- func alertToEncourageCameraAccessInitially() {
- var alert = UIAlertController(title: "IMPORTANT", message: "Camera access required for QR Scanning", preferredStyle: UIAlertControllerStyle.Alert)
- alert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil))
- alert.addAction(UIAlertAction(title: "Allow Camera", style: .Cancel, handler: { (alert) -> Void in
- UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
- }))
- presentViewController(alert, animated: true, completion: nil)
- }
- func alertPromptToAllowCameraAccessViaSetting() {
- var alert = UIAlertController(title: "IMPORTANT", message: "Please allow camera access for QR Scanning", preferredStyle: UIAlertControllerStyle.Alert)
- alert.addAction(UIAlertAction(title: "Dismiss", style: .Cancel) { alert in
- if AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo).count > 0 {
- AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo) { granted in
- dispatch_async(dispatch_get_main_queue()) {
- self.checkCamera() } }
- }
- })
- presentViewController(alert, animated: true, completion: nil)
- }
Advertisement
Add Comment
Please, Sign In to add comment