[swift] Swift로 디바이스의 카메라 지원 여부 확인하기

iOS 앱을 개발할 때, 디바이스가 카메라를 지원하는지 확인해야 할 때가 있습니다. 이를 위해 Swift 언어를 사용하여 디바이스의 카메라 지원 여부를 간단하게 확인할 수 있습니다.

AVCaptureDevice 사용하기

카메라 지원 여부를 확인하기 위해 AVCaptureDevice 클래스를 사용합니다. 이 클래스는 카메라의 기능을 제어하기 위한 인터페이스를 제공합니다.

아래의 코드를 사용하여 디바이스의 후면 카메라 지원 여부를 확인할 수 있습니다.

import AVFoundation

if let device = AVCaptureDevice.default(for: .video), device.position == .back {
    print("후면 카메라가 지원됩니다.")
} else {
    print("후면 카메라가 지원되지 않습니다.")
}

위의 코드는 AVCaptureDevice.default(for: .video)를 통해 디바이스의 기본 카메라를 가져온 뒤, device.position == .back을 사용하여 해당 카메라가 후면 카메라인지 확인합니다. 후면 카메라가 지원되는 경우 “후면 카메라가 지원됩니다.”라는 메시지가 출력되고, 지원되지 않는 경우 “후면 카메라가 지원되지 않습니다.”라는 메시지가 출력됩니다.

전면 카메라 지원 여부 확인하기

만약 디바이스의 전면 카메라 지원 여부를 확인하고 싶다면, device.position == .front를 사용하면 됩니다. 아래의 예제 코드를 참고하세요.

if let device = AVCaptureDevice.default(for: .video), device.position == .front {
    print("전면 카메라가 지원됩니다.")
} else {
    print("전면 카메라가 지원되지 않습니다.")
}

AVCaptureDevice.authorizationStatus() 사용하기

카메라 권한을 확인하는 경우에는 AVCaptureDevice.authorizationStatus(for: .video) 메소드를 사용할 수 있습니다. 이 메소드는 AVAuthorizationStatus를 반환하며, 반환된 값은 다음과 같습니다.

아래의 예제 코드는 카메라 권한 상태를 확인하고 해당 상태에 따라 메시지를 출력하는 예제입니다.

switch AVCaptureDevice.authorizationStatus(for: .video) {
    case .notDetermined:
        print("카메라 권한을 요청하지 않은 상태입니다.")
    case .restricted:
        print("카메라 권한이 제한되었습니다.")
    case .denied:
        print("사용자가 카메라 접근을 거부했습니다.")
    case .authorized:
        print("카메라 접근 권한이 허용되었습니다.")
    @unknown default:
        print("알 수 없는 상태입니다.")
}

결론

Swift를 사용하여 디바이스의 카메라 지원 여부를 확인하는 방법에 대해 알아보았습니다. AVCaptureDevice 클래스를 사용하여 후면 카메라와 전면 카메라의 지원 여부를 확인할 수 있으며, AVCaptureDevice.authorizationStatus() 메소드를 사용하여 카메라 권한 상태를 확인할 수 있습니다. 이를 통해 앱 개발 시 카메라를 지원하는 디바이스와 권한을 확인하여 더욱 유연하게 동작할 수 있습니다.

참고 자료