123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- //
- // RecordCheckManager.m
- // StudentDaya
- //
- // Created by Kyle on 2019/10/9.
- // Copyright © 2019 DayaMusic. All rights reserved.
- //
- #import "RecordCheckManager.h"
- #import <AVFoundation/AVFoundation.h>
- #import "KSPremissionAlert.h"
- #import "TZImageManager.h"
- @implementation RecordCheckManager
- + (PREMISSIONTYPE)checkPermissionShowAlert:(BOOL)showAlert showInView:(UIView *)displayView {
- __block PREMISSIONTYPE bCanRecord = PREMISSIONTYPE_NONE;
- if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 7.0) {
- AVAuthorizationStatus videoAuthStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
- if (videoAuthStatus == AVAuthorizationStatusNotDetermined) {// 未询问用户是否授权
- AVAudioSession *audioSession = [AVAudioSession sharedInstance];
- if ([audioSession respondsToSelector:@selector(requestRecordPermission:)]) {
- [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
- if (granted) {
- bCanRecord = PREMISSIONTYPE_YES;
- } else {
- bCanRecord = PREMISSIONTYPE_NO;
- }
- }];
- }
- } else if(videoAuthStatus == AVAuthorizationStatusRestricted || videoAuthStatus == AVAuthorizationStatusDenied) {
- // 未授权
- bCanRecord = PREMISSIONTYPE_NO;
- if (showAlert && displayView != nil) {
- [self showSetAlertViewInView:displayView];
- }
- } else{
- // 已授权
- NSLog(@"已授权");
- bCanRecord = PREMISSIONTYPE_YES;
- }
- }
- return bCanRecord;
- }
- //提示用户进行麦克风使用授权
- + (void)showSetAlertViewInView:(UIView *)displayView {
- [KSPremissionAlert shareInstanceDisplayImage:CHECKDEVICETYPE_MIC message:@"请开启麦克风访问权限" showInView:displayView cancel:^{
-
- } confirm:^{
- [self openSettingView];
- }];
- };
- + (PREMISSIONTYPE)checkCameraPremissionAvaiable:(BOOL)showAlert showInView:(UIView *)displayView {
-
- __block PREMISSIONTYPE canRecordVideo = PREMISSIONTYPE_NONE;
- if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 7.0) {
- AVAuthorizationStatus videoAuthStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
- if (videoAuthStatus == AVAuthorizationStatusNotDetermined) {// 未询问用户是否授权
- [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo
- completionHandler:^(BOOL granted) {
- dispatch_async(dispatch_get_main_queue(), ^{
- if (granted) {
- canRecordVideo = PREMISSIONTYPE_YES;
- } else {
- canRecordVideo = PREMISSIONTYPE_NO;
- }
- });
- }];
- } else if(videoAuthStatus == AVAuthorizationStatusRestricted || videoAuthStatus == AVAuthorizationStatusDenied) {
- // 未授权
- canRecordVideo = PREMISSIONTYPE_NO;
- if (showAlert && displayView != nil) {
- [self showSetCameraAlertViewInView:displayView];
- }
- } else{
- // 已授权
- canRecordVideo = PREMISSIONTYPE_YES;
- NSLog(@"已授权");
- }
- }
- return canRecordVideo;
- }
- //提示用户进行相机使用授权
- + (void)showSetCameraAlertViewInView:(UIView *)displayView {
- [KSPremissionAlert shareInstanceDisplayImage:CHECKDEVICETYPE_CAMREA message:@"请开启相机访问权限" showInView:displayView cancel:^{
-
- } confirm:^{
- [self openSettingView];
- }];
- };
- + (PREMISSIONTYPE)checkPhotoLibraryPremissionAvaiable:(BOOL)showAlert showInView:(UIView *__nullable)displayView {
- __block PREMISSIONTYPE cansaveVideo = PREMISSIONTYPE_NONE;
- if ([PHPhotoLibrary authorizationStatus] == 2) { // 已被拒绝,没有相册权限,将无法保存拍的照片或视频
- cansaveVideo = PREMISSIONTYPE_NO;
- }
- else if ([PHPhotoLibrary authorizationStatus] == 0) {
- [[TZImageManager manager] requestAuthorizationWithCompletion:^{
- [self checkPhotoLibraryPremissionAvaiable:showAlert showInView:displayView];
- }];
- }
- else {
- cansaveVideo = PREMISSIONTYPE_YES;
- NSLog(@"已授权");
- }
- if (showAlert && displayView != nil && cansaveVideo == PREMISSIONTYPE_NO) {
- [self showSetAlbumAlertViewInView:displayView];
- }
- return cansaveVideo;
- }
- //提示用户进行相机使用授权
- + (void)showSetAlbumAlertViewInView:(UIView *)displayView {
- [KSPremissionAlert shareInstanceDisplayImage:CHECKDEVICETYPE_CAMREA message:@"请开启相册访问权限" showInView:displayView cancel:^{
-
- } confirm:^{
- [self openSettingView];
- }];
- };
- + (void)openSettingView {
- if (@available(iOS 10, *)) {
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
- } else {
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
- }
- }
- @end
|