iOS常用权限是否开启判断

2024-06-23 10:32

本文主要是介绍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常用权限是否开启判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086902

相关文章

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、