ios 9+ 访问权限总结

2017-08-29  本文已影响0人  4fbc4e24081a

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
上一篇下一篇

猜你喜欢

热点阅读