2017-04-13 46 views
0

我正在使用具有布尔方法调用的卡扫描库来检查相机权限是否已设置。 Swift 3中有一种方法可以根据警报动作控制器手动设置权限。Swift手动设置相机权限

我不想创建另一个imagepicker如果已经通过库创建一个。

可以这样做吗?

感谢

+0

与系统警报 – DenFav

+0

权限中定义的不,你不能更改权限只能通过苹果的官方警报设置。您无法使用自己的警报更新权限。但是,您可以执行的操作是,如果您检测到设置已关闭,则会提示用户提醒您打开应用程序设置并更改权限。此提醒可以直接打开应用设置。看到这里:https://developer.apple.com/reference/uikit/uiapplicationopensettingsurlstring – Hodson

回答

1

不,你不能那样做。但是,当然您可以让用户使用以下代码授予权限,然后您可以将该值存储在一个bool变量中以备将来使用。

if AVCaptureDevice.authorizationStatus(forMediaType: AVMediaTypeVideo) == AVAuthorizationStatus.authorized 
{ 
    // Already Authorized 
} 
else 
{ 
    AVCaptureDevice.requestAccess(forMediaType: AVMediaTypeVideo, completionHandler: { (granted :Bool) -> Void in 
     if granted == true 
     { 
     // User Granted 
     } 
     else 
     { 
     // User Rejected 
     } 
    }); 
} 
+0

@EricAya用swift代码编辑我的答案。希望能帮到:) –

+0

不错。已标记为答案。 – user7684436

1

出于安全原因,没有办法以编程方式设置的应用权限,因为这极易引起潜在的恶意应用程序操纵行为。 Apple还希望为关键的安全设置开发简化的界面,包括针对单个应用程序的权限。

+0

好吧,我使用相同的alertController作为相机的权限。它是一个虚拟ImagePicker :) – user7684436