[Swift]相册/相机/麦克风权限检测

2024-08-20 22:38

本文主要是介绍[Swift]相册/相机/麦克风权限检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/// 保存图片
private func saveImage() {guard PermissionsHelper.photoEnable() else{return}guard let ig = self.shareImg else {ScreenUIManager.showToastMessage(message: "保存失败")return}UIImageWriteToSavedPhotosAlbum(ig, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), nil)
}
import UIKit
import AVKit
import Photosstruct PermissionsHelper {static func cameraEnable() -> Bool {func cameraResult() {let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.video)if (authStatus == .authorized) {            // 已授权,可以打开相机saveCamera(value: "1")} else if (authStatus == .denied) {         // 已拒绝saveCamera(value: "0")let alertV = UIAlertView.init(title: "提示", message: "请去-> [设置 - 隐私 - 相机] 打开访问开关", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "确定")alertV.show()} else if (authStatus == .restricted) {     // 相机权限受限saveCamera(value: "0")let alertV = UIAlertView.init(title: "提示", message: "相机权限受限", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "确定")alertV.show()} else if (authStatus == .notDetermined) {  // 首次 使用AVCaptureDevice.requestAccess(for: .video, completionHandler: { (statusFirst) inif statusFirst {// 用户首次允许saveCamera(value: "1")} else {// 用户首次拒绝saveCamera(value: "0")}})}}func saveCamera(value: String) {UserDefaults.standard.setValue(value, forKey: "cameraEnablebs")}cameraResult()let result = (UserDefaults.standard.value(forKey: "cameraEnablebs") as? String) == "1"return result}static func audioEnable() -> Bool {func audioResult() {let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.audio)if (authStatus == .authorized) {            // 已授权,可以使用摄像头saveAudio(value: "1")} else if (authStatus == .denied) {         // 已拒绝saveAudio(value: "0")let alertV = UIAlertView.init(title: "提示", message: "请去-> [设置 - 隐私 - 麦克风] 打开访问开关", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "确定")alertV.show()} else if (authStatus == .restricted) {     // 相机权限受限saveAudio(value: "0")let alertV = UIAlertView.init(title: "提示", message: "相机权限受限", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "确定")alertV.show()} else if (authStatus == .notDetermined) {  // 首次 使用AVCaptureDevice.requestAccess(for: .video, completionHandler: { (statusFirst) inif statusFirst {// 用户首次允许saveAudio(value: "1")} else {// 用户首次拒绝saveAudio(value: "0")}})}}func saveAudio(value: String) {UserDefaults.standard.setValue(value, forKey: "audioEnablebs")}audioResult()let result = (UserDefaults.standard.value(forKey: "audioEnablebs") as? String) == "1"return result}static func photoEnable() -> Bool {func photoResult() {let status = PHPhotoLibrary.authorizationStatus()if (status == .authorized) {savePhoto(value: "1")} else if (status == .restricted || status == .denied) {let alertV = UIAlertView.init(title: "提示", message: "请去-> [设置 - 隐私 - 相册] 打开访问开关", delegate: nil, cancelButtonTitle: nil, otherButtonTitles: "确定")alertV.show()savePhoto(value: "0")} else if (status == .notDetermined) { // 首次使用PHPhotoLibrary.requestAuthorization({ (firstStatus) inlet isTrue = (firstStatus == .authorized)if isTrue {// 用户首次允许savePhoto(value: "1")} else {// 用户首次拒绝savePhoto(value: "0")}})}}func savePhoto(value: String) {UserDefaults.standard.setValue(value, forKey: "photoEnablebs")}photoResult()let result = (UserDefaults.standard.object(forKey: "photoEnablebs") as? String) == "1"return result}}

这篇关于[Swift]相册/相机/麦克风权限检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

无线领夹麦克风什么牌子好用?揭秘领夹麦克风哪个牌子音质好!

随着短视频行业的星期,围绕着直播和视频拍摄的电子数码类产品也迎来了热销不减的高增长,其中除了数码相机外,最为重要的麦克风也得到了日益增长的高需求,尤其是无线领夹麦克风,近几年可谓是异常火爆。别看小小的一对无线麦克风,它对于视频拍摄的音质起到了极为关键的作用。 不过目前市面上的麦克风品牌种类多到让人眼花缭乱,盲目挑选的话容易踩雷,那么无线领夹麦克风什么牌子好用?今天就给大家推荐几款音质好的

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG