2017-04-19 2 views
0

Dans mon application, j'ai utilisé l'implémentation de l'appareil photo pour que l'utilisateur entre en premier signifie qu'il doit accéder à la caméra et à la photothèque de l'application complète, si elle est refusée signifie que l'utilisateur ne peut pas accéder à la caméra de sorte que le temps nous avons besoin de changer la caméra et la photothèque dans les paramètres.Après cela, nous devons accéder à la caméra dans mon cas, il ne fonctionne pas correctement, quelqu'un m'aide, très apprécié.Problème avec la caméra d'accès après avoir refusé la caméra

+0

demander de nouveau permision –

+0

j'ai essayé, mais je incapable d'accéder à la bibliothèque de la caméra et photo, pouvez-vous s'il vous plaît fournir un certain morceau de code. –

+0

@PatelJigar Je pensais qu'il n'était pas possible de demander deux fois ou plus pour la permission lorsque l'utilisateur ne l'a pas autorisé la première fois –

Répondre

2

Vous pouvez vérifier d'abord si la permission de l'appareil photo est autorisée ou non. Si ce n'est pas le cas, vous pouvez naviguer jusqu'à l'écran des paramètres & demander à l'utilisateur une permission.

override func viewDidLoad() { 
     super.viewDidLoad() 
     checkCameraPermission() 
    } 
    func checkCameraPermission() { 
     let cameraMediaType = AVMediaTypeVideo 
     AVCaptureDevice.requestAccess(forMediaType: cameraMediaType) { granted in 
      if granted { 
       //Do operation 
       print("Granted access for camera") 
       self.setCamera() 
      } else { 
       self.noCameraFound() 
       print("Denied access for camera ") 
      } 
     } 
    } 
    func noCameraFound(){ 
     let alert = UIAlertController(title: "AppName", message: "Please allow camera access in phone settings", preferredStyle: UIAlertControllerStyle.alert) 
     alert.addAction(UIAlertAction(title: "Back", style: UIAlertActionStyle.cancel, handler: {(action:UIAlertAction) in 


     })); 

     alert.addAction(UIAlertAction(title: "Open setting ", style: UIAlertActionStyle.default, handler: {(action:UIAlertAction) in 
      UIApplication.shared.open(NSURL(string:UIApplicationOpenSettingsURLString)! as URL, options: [:], completionHandler: nil) 

     })); 
     self.present(alert, animated: true, completion: nil) 
    } 
+0

Merci jack, vraiment apprécié, permet de vérifier. –