iOS检测设备相机是否可以使用

最近在做扫描二维码功能,再进入扫描页面的时候最好判断当前设备是否可用,这样用户体验会更好,也防止因无法开启设备相机导致的崩溃。

检测摄像头是否可以使用

检测使用了UIImagePickerController这个类,这个类的功能很强大。先贴官方代码:

+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;                 // returns YES if source is available (i.e. camera present)

这是一个类方法,直接用UIImagePickerController调用就可以。参数sourceType是一个枚举:

typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
    UIImagePickerControllerSourceTypePhotoLibrary, //图库
    UIImagePickerControllerSourceTypeCamera, //相机
    UIImagePickerControllerSourceTypeSavedPhotosAlbum //相册
} __TVOS_PROHIBITED;

因此我们调用以下方法,根据返回的Bool值就可以判断相机是否可以使用(Xcode的虚拟器的相机功能是不可用的)

- (BOOL)isCameraAvailable{
    return [UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera];
}

检测闪光灯是否可以使用

- (BOOL)isRearCameraAvailable {
    return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear]; //后置摄像头的闪光灯
//    return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceFront]; 前置摄像头的闪光灯
}

1234

你可能感兴趣的:(iOS检测设备相机是否可以使用)