app的权限判断一:相机

app需要获取系统的隐私是需要权限的(不同系统所提供的会有所不同【可在 设置-隐私 中查看】) PS: 有些服务是iOS7以上才限制的

app的权限判断一:相机_第1张图片
F25A7297.png

而在开发中,我们需要判断用户是否已经设置了 【允许】的操作,来确保不会引起错误,常用的其实就下面这几个,(有时间以后会补上)
1.相机
2.相片
3.定位服务
4.通讯录


首先有一个枚举来表示某个capability的授权状态:

AVAuthorizationStatus

app的权限判断一:相机_第2张图片
屏幕快照 2016-01-22 16.05.08.png

简单翻译的意思如下:
0.NotDeterMined(没决定的) :用户还没有对该app做出选择,
1.Restricted(有一定限制的):media type的访问被限制了,(例如受到parental controls 的限制)
2.Denied(拒绝): 被设置了不能访问
3.Authorized(授权的): 已经授权了

所以通常这样操作:
0提示用户去设置;
1和2提醒用户打开允许访问


AVCaptureDevice这样一个类方法来查询media的状态


app的权限判断一:相机_第3张图片
屏幕快照 2016-01-22 17.34.00.png

mediaType有以下那么多,判断相机的使用第一个:video,


app的权限判断一:相机_第4张图片
屏幕快照 2016-01-22 17.36.08.png

所以判断相机是否已经授权的方法如下:
/**
 *  判断相机是否授权
 */
- (BOOL)isAuthrized {
    AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if (status == AVAuthorizationStatusDenied || status == AVAuthorizationStatusRestricted) {
        //没有授权
        return NO;
    } else {
        //已经授权
        return YES;
    }
}

需要弹AlertView还是做别的操作就各自依需求吧

你可能感兴趣的:(app的权限判断一:相机)