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

相关文章

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

一文详解Java常用包有哪些

《一文详解Java常用包有哪些》包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合,:本文主要介绍Java常用包有哪些的相关资料,需要的... 目录Java.langjava.utiljava.netjava.iojava.testjava.sql

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

kingbase修改权限实现方式

《kingbase修改权限实现方式》该文章详细介绍了如何在数据库中创建用户并赋予其相应的权限,包括创建用户、回收默认权限、创建数据库、赋权数据库权限、创建只读用户以及回收权限等步骤... 目录前言使用步骤总结前言创建用户后对数据库对象的读写权限进行修改使用步骤1、创建用户create user cs