|
//
// HardwareAuthorization.swift
// Function
//
// Created by FFIB on 2016/11/21.
// Copyright © 2016年 FFIB. 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
}
}
}
|