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

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

Linux权限管理与ACL访问控制详解

《Linux权限管理与ACL访问控制详解》Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合... 目录一、基本权限概述1. 基本权限与数字对应关系二、权限管理命令(chmod)1. 字符模式语法2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹