您的位置:首页 > 运维架构

获取相机、麦克风、通讯录权限,确认是否拥有这些权限

2014-03-17 18:05 423 查看
请求系统设置隐私中 相机 权限

代码如下:

[AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL granted) {
PRINT("requestAccessForMediaTypeAudio granted:%d", granted)
}];
请求系统设置隐私中 麦克风 权限
代码如下:

[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
PRINT("requestAccessForMediaTypeVideo granted:%d", granted)
}];
请求系统设置隐私中 通讯录 权限
代码如下:

if (ABAddressBookRequestAccessWithCompletion != NULL) {
ABAddressBookRef addressBookRef = ABAddressBookCreate();
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(_addressBookRef, ^(bool granted, CFErrorRef error) {
PRINT("granted:%d", granted)
dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);
}

确认是否拥有 相机、麦克风 权限
NSString *mediaType = isVideo ? AVMediaTypeVideo : AVMediaTypeAudio;AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:mediaType];(AVMediaTypeVideo--->相机;AVMediaTypeAudio--->麦克风)其中status为下面几种状态之一typedef enum : NSInteger {   AVAuthorizationStatusNotDetermined = 0,   AVAuthorizationStatusRestricted,   AVAuthorizationStatusDenied,   AVAuthorizationStatusAuthorized} AVAuthorizationStatus;

确认是否拥有 通讯录 权限:

ABAuthorizationStatus status =ABAddressBookGetAuthorizationStatus();

其中status为下面几种状态之一

typedef CF_ENUM(CFIndex, ABAuthorizationStatus) {
kABAuthorizationStatusNotDetermined = 0,
kABAuthorizationStatusRestricted,
kABAuthorizationStatusDenied,
kABAuthorizationStatusAuthorized
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息