最近在做扫描二维码功能,再进入扫描页面的时候最好判断当前设备是否可用,这样用户体验会更好,也防止因无法开启设备相机导致的崩溃。
检测摄像头是否可以使用
检测使用了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
网友评论