美文网首页
ios 9+ 访问权限总结

ios 9+ 访问权限总结

作者: 4fbc4e24081a | 来源:发表于2017-08-29 16:05 被阅读0次

    1.判断相册权限

    导入<Photos/Photos.h>
    +(BOOL)judgeIsHavePhotoAlbumAuthority {
        PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
        if (status == PHAuthorizationStatusDenied || status == PHAuthorizationStatusRestricted) {
            return NO;
        }
        return YES;
    }];
    }
    
    请求打开相册
    [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
            if (status == PHAuthorizationStatusAuthorized) {
                //授权成功
            } else {
                //授权失败
        }];
    

    2.判断相机权限

    导入<AVFoundation/AVFoundation.h>
    + (BOOL)judgeIsHaveCameraAuthority {
        AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
        if (status == AVAuthorizationStatusDenied || status ==AVAuthorizationStatusRestricted) {
            return NO;
        }
        return YES;
    }
    
    请求使用相机
    [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
            if (granted) {
                //授权成功
            } else {
               //授权失败
            }
        }];
    

    3.判断麦克风权限

    导入<AVFoundation/AVFoundation.h>
    + (BOOL)judgeIsHaveRecordAuthority {
        AVAudioSessionRecordPermission status = [[AVAudioSession sharedInstance] recordPermission];
        if (status == AVAudioSessionRecordPermissionDenied) {
            return NO;
        }
        return YES;
    }
    
    请求使用麦克风
    [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
            if (granted) {
                //授权成功
            } else {
               //授权失败
            }
        }];
    

    4.判断通讯录权限

    导入<AddressBook/AddressBook.h>
    + (BOOL)judgeIsAddressBookAuthority {
          CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
            if (status == CNAuthorizationStatusDenied || status == CNAuthorizationStatusRestricted) {
                return NO;
            }
            return YES;
    }
    

    5.判断定位权限

    导入<CoreLocation/CoreLocation.h>
    + (BOOL)judgeIsHaveLocationAuthority {
        CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
        BOOL enabled = [CLLocationManager locationServicesEnabled];
        if (!enabled || status == kCLAuthorizationStatusDenied || status == kCLAuthorizationStatusRestricted ) {
            return NO;
        }
        return YES;
    }
    

    6.判断日历权限

    导入<EventKit/EventKit.h>
    + (BOOL)judgeIsHaveCalendarAuthority {
        EKAuthorizationStatus status = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent];
        if (status == EKAuthorizationStatusDenied || status == EKAuthorizationStatusRestricted) {
            return NO;
        }
        return YES;
    }
    
    请求打卡日历
     EKEventStore *eventStore = [[EKEventStore alloc] init];
        [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
             if (granted) {
                //授权成功
            } else {
               //授权失败
            }
        }];
    

    7.判断蓝牙权限

    +(BOOL)judgeIsHaveBluetoothAuthority {
        CBPeripheralManagerAuthorizationStatus status = [CBPeripheralManager authorizationStatus];
        if (status == CBPeripheralManagerAuthorizationStatusDenied || status == CBPeripheralManagerAuthorizationStatusRestricted) {
            return NO;
        }
        return YES;
    }
    

    注意在Plist文件中添加对应的权限说明

    屏幕快照 2017-08-29 下午4.04.22.png

    相关文章

      网友评论

          本文标题:ios 9+ 访问权限总结

          本文链接:https://www.haomeiwen.com/subject/njgodxtx.html