1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //
- // LBXPermissionCamera.m
- // LBXKits
- //
- // Created by lbxia on 2017/9/10.
- // Copyright © 2017年 lbx. All rights reserved.
- //
- #import "LBXPermissionCamera.h"
- @implementation LBXPermissionCamera
- + (BOOL)authorized
- {
- if ([AVCaptureDevice respondsToSelector:@selector(authorizationStatusForMediaType:)])
- {
- AVAuthorizationStatus permission =
- [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
-
- return permission == AVAuthorizationStatusAuthorized;
-
- } else {
- // Prior to iOS 7 all apps were authorized.
- return YES;
- }
- }
- + (AVAuthorizationStatus)authorizationStatus
- {
- if ([AVCaptureDevice respondsToSelector:@selector(authorizationStatusForMediaType:)])
- {
- return [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
- } else {
- // Prior to iOS 7 all apps were authorized.
- return AVAuthorizationStatusAuthorized;
- }
- }
- + (void)authorizeWithCompletion:(void(^)(BOOL granted,BOOL firstTime))completion
- {
- if ([AVCaptureDevice respondsToSelector:@selector(authorizationStatusForMediaType:)]) {
- AVAuthorizationStatus permission =
- [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
-
- switch (permission) {
- case AVAuthorizationStatusAuthorized:
- completion(YES,NO);
- break;
- case AVAuthorizationStatusDenied:
- case AVAuthorizationStatusRestricted:
- completion(NO,NO);
- break;
- case AVAuthorizationStatusNotDetermined:
- {
- [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo
- completionHandler:^(BOOL granted) {
- if (completion) {
- dispatch_async(dispatch_get_main_queue(), ^{
- completion(granted,YES);
- });
- }
- }];
-
- }
- break;
- }
- } else {
- // Prior to iOS 7 all apps were authorized.
- completion(YES,NO);
- }
- }
- @end
|