[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

相关文章

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

浅析如何使用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