iOS/Swift + Objective-c
[Swift / Objective-c] 카메라 권한 허용 상태 조회 및 요청
안경 쓴 귀니
2021. 9. 14. 19:20
반응형
카메라 권한 허용 상태 조회 및 요청 방법
Info.plist에 Camera 권한 추가 및 AVFoundation import 하여 사용
필수사항
Info.plist에 Privacy - Camera Usage Description 추가
<key>NSCameraUsageDescription</key>
<string>앱 기능을 사용하려면 카메라 권한이 필요합니다.</string>
샘플
- Swift
import AVFoundation
let status = AVCaptureDevice.authorizationStatus(for: AVMediaType.video)
switch status {
case .notDetermined:
print("권한 요청 전 상태")
// 권한 요청
AVCaptureDevice.requestAccess(for: .video) { grated in
if grated {
print("권한 허용")
} else {
print("권한 거부")
}
}
case .authorized:
print("권한 허용 상태")
case .denied:
print("권한 거부 상태")
case .restricted:
print("액세스 불가 상태")
@unknown default:
print("unknown default")
}
- Objective-c
#import <AVFoundation/AVFoundation.h>
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
switch (status) {
case AVAuthorizationStatusNotDetermined:{
NSLog(@"권한 요청 전 상태");
// 권한 요청
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if (granted) {
NSLog(@"권한 허용");
} else {
NSLog(@"권한 거부");
}
}];
};
break;
case AVAuthorizationStatusAuthorized:
NSLog(@"권한 허용 상태");
break;
case AVAuthorizationStatusDenied:
NSLog(@"권한 거부 상태");
break;
case AVAuthorizationStatusRestricted:
NSLog(@"액세스 불가 상태");
break;
}
참고 URL
- https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624613-authorizationstatus
- https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624584-requestaccess
- https://developer.apple.com/documentation/avfoundation/avauthorizationstatus
반응형