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
网友评论