No Description

HardwareAuthorization.swift 3.8KB

    // // HardwareAuthorization.swift // Function // // Created by mac on 2016/11/21. // Copyright © 2016年 mac. All rights reserved. // import UIKit import CoreLocation import Contacts import AddressBook import EventKit import AssetsLibrary import Photos import CoreBluetooth public class HardwareAuthorization: NSObject { class func isAuthorizationLocation() -> Bool { let status = CLLocationManager.authorizationStatus() switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } return true } class func isAuthorizationAddress() -> Bool { if #available(iOS 9.0, *) { let status = CNContactStore.authorizationStatus(for: .contacts) switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } } else { let status = ABAddressBookGetAuthorizationStatus() switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } } return true } class func isAuthorizationReminders() -> Bool { return isAuthorizationEvent(entityType: .reminder) } class func isAuthorizationCalender() -> Bool { return isAuthorizationEvent(entityType: .event) } class func isAuthorizationEvent(entityType: EKEntityType) -> Bool { let status = EKEventStore.authorizationStatus(for: entityType) switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } return true } class func isAuthorizationPhotoAlbum() -> Bool { if #available(iOS 9.0, *) { let status = PHPhotoLibrary.authorizationStatus() switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } } else { let status = ALAssetsLibrary.authorizationStatus() switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } } return true } class func isAuthorizationBluetooth() -> Bool { let status = CBPeripheralManager.authorizationStatus() switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } return true } class func isAuthroizationCamera() -> Bool { let status = AVCaptureDevice.authorizationStatus(for: .video) switch status { case .notDetermined: return true case .denied : return false case .restricted : return false default: break } return true } class func isAuthroizationMicrophone() -> Bool { let status = AVAudioSession.sharedInstance().recordPermission.rawValue switch status { case 1: return true case 2: return false default: return true } } }