docrock

Untitled

Jul 4th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. func checkCamera() {
  2. let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
  3. switch authStatus {
  4. case AVAuthorizationStatus.Authorized: // Do you stuffer here i.e. allowScanning()
  5. case AVAuthorizationStatus.Denied: alertToEncourageCameraAccessInitially()
  6. case AVAuthorizationStatus.NotDetermined: alertPromptToAllowCameraAccessViaSetting()
  7. default: alertToEncourageCameraAccessInitially()
  8. }
  9.  
  10. }
  11.  
  12. func alertToEncourageCameraAccessInitially() {
  13. var alert = UIAlertController(title: "IMPORTANT", message: "Camera access required for QR Scanning", preferredStyle: UIAlertControllerStyle.Alert)
  14.  
  15. alert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil))
  16.  
  17. alert.addAction(UIAlertAction(title: "Allow Camera", style: .Cancel, handler: { (alert) -> Void in
  18. UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
  19. }))
  20.  
  21. presentViewController(alert, animated: true, completion: nil)
  22. }
  23.  
  24. func alertPromptToAllowCameraAccessViaSetting() {
  25.  
  26. var alert = UIAlertController(title: "IMPORTANT", message: "Please allow camera access for QR Scanning", preferredStyle: UIAlertControllerStyle.Alert)
  27.  
  28. alert.addAction(UIAlertAction(title: "Dismiss", style: .Cancel) { alert in
  29. if AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo).count > 0 {
  30. AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo) { granted in
  31. dispatch_async(dispatch_get_main_queue()) {
  32. self.checkCamera() } }
  33. }
  34. })
  35.  
  36. presentViewController(alert, animated: true, completion: nil)
  37. }
Advertisement
Add Comment
Please, Sign In to add comment