本文主要是介绍[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]相册/相机/麦克风权限检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!