app需要获取系统的隐私是需要权限的(不同系统所提供的会有所不同【可在 设置-隐私 中查看】) PS: 有些服务是iOS7以上才限制的
F25A7297.png而在开发中,我们需要判断用户是否已经设置了 【允许】的操作,来确保不会引起错误,常用的其实就下面这几个,(有时间以后会补上)
1.相机
2.相片
3.定位服务
4.通讯录
首先有一个枚举来表示某个capability的授权状态:
屏幕快照 2016-01-22 16.05.08.pngAVAuthorizationStatus
简单翻译的意思如下:
0.NotDeterMined(没决定的) :用户还没有对该app做出选择,
1.Restricted(有一定限制的):media type的访问被限制了,(例如受到parental controls 的限制)
2.Denied(拒绝): 被设置了不能访问
3.Authorized(授权的): 已经授权了
所以通常这样操作:
0提示用户去设置;
1和2提醒用户打开允许访问
AVCaptureDevice这样一个类方法来查询media的状态
屏幕快照 2016-01-22 17.34.00.png
mediaType有以下那么多,判断相机的使用第一个:video,
屏幕快照 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还是做别的操作就各自依需求吧
网友评论