訪問(wèn)麥克風(fēng):
extension AVAudioSession{
static func authorizeToMicrophone(completion:@escaping (Bool) -> Void){
let recordingSession = AVAudioSession.sharedInstance()
switch recordingSession.recordPermission{
case AVAudioSession.RecordPermission.granted:
//已授權(quán)
completion(true)
break
case AVAudioSession.RecordPermission.denied:
//拒絕授權(quán)
completion(false)
break
case AVAudioSession.RecordPermission.undetermined:
//請(qǐng)求授權(quán)
recordingSession.requestRecordPermission() { allowed in
DispatchQueue.main.async {
if allowed {
completion(true)
} else {
completion(false)
}
}
}
}
}
}
訪問(wèn)相冊(cè)
extension PHPhotoLibrary {
static func authorizeToAlbum(completion:@escaping (Bool)->Void) {
if PHPhotoLibrary.authorizationStatus() == .denied {
//拒絕授權(quán)
completion(false)
} else if PHPhotoLibrary.authorizationStatus() == .authorized {
//已授權(quán)
completion(true)
} else if PHPhotoLibrary.authorizationStatus() == .notDetermined{
//請(qǐng)求授權(quán)
PHPhotoLibrary.requestAuthorization({ (status) in
if status == .authorized {
completion(true)
} else {
completion(false)
}
})
}
}
}
訪問(wèn)手機(jī)聯(lián)系人:
extension CNContactStore {
static func authorizeToContaces(completion:@escaping (Bool)->Void) {
if CNContactStore.authorizationStatus(for: .contacts) == .authorized {
//已授權(quán)
completion(true)
} else if CNContactStore.authorizationStatus(for: .contacts) == .denied {
//拒絕授權(quán)
completion(false)
} else if CNContactStore.authorizationStatus(for: .contacts) == .notDetermined{
//請(qǐng)求授權(quán)
CNContactStore().requestAccess(for: .contacts) { (isRight, error) in
if isRight {
completion(true)
} else {
completion(false)
}
}
}
}
}