本文主要是介绍iOS常用权限是否开启判断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.iOS开发检测是否开启定位:
需要导入:
#import <CoreLocation/CoreLocation.h>
代码如下:
+ (void)openLocationServiceWithBlock:(void(^)(BOOL))callback
{BOOL isOPen = NO;if ([CLLocationManager locationServicesEnabled] &&[CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) {isOPen = YES;}callback(isOPen);
}
2.iOS开发检测是否允许消息推送:
需要导入:
#import <UserNotifications/UserNotifications.h>
代码如下:
+ (void)openMessageNotificationServiceWithBlock:(void(^)(BOOL))callback
{BOOL isOpen = NO;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];if (setting.types != UIUserNotificationTypeNone) {isOpen = YES;}
#elseUIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];if (type != UIRemoteNotificationTypeNone) {isOpen = YES;}
#endifcallback(isOpen);
}
+ (void)openMessageNotificationServiceWithBlock:(void(^)(BOOL))callback
{
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0[[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings *settings) {callback(settings.authorizationStatus == UNAuthorizationStatusAuthorized);}];
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0callback([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]);
#elseUIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];callback(type != UIRemoteNotificationTypeNone);
#endif
}
3.iOS开发检测是否开启摄像头:
需要导入:
#import <AVFoundation/AVFoundation.h>
代码如下:
+ (void)openCaptureDeviceServiceWithBlock:(void(^)(BOOL))callback
{
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];if (authStatus == AVAuthorizationStatusNotDetermined) {[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {callback(granted);}];} else if (authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied) {callback(NO);} else {callback(YES);}
#endif
}
4.iOS开发检测是否开启相册:
需要导入:
#import <Photos/Photos.h>
#import <AssetsLibrary/AssetsLibrary.h>
代码如下:
+ (void)openAlbumServiceWithBlock:(void(^)(BOOL))callback
{BOOL isOpen;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0PHAuthorizationStatus authStatus = [PHPhotoLibrary authorizationStatus];isOpen = YES;if (authStatus == PHAuthorizationStatusRestricted || authStatus == PHAuthorizationStatusDenied) {isOpen = NO;}
#elseALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];isOpen = YES;if (author == ALAuthorizationStatusRestricted
这篇关于iOS常用权限是否开启判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!