最近在做掃描二維碼功能,再進(jìn)入掃描頁面的時(shí)候最好判斷當(dāng)前設(shè)備是否可用,這樣用戶體驗(yàn)會更好副渴,也防止因無法開啟設(shè)備相機(jī)導(dǎo)致的崩潰剩蟀。
檢測攝像頭是否可以使用
檢測使用了UIImagePickerController這個類藤巢,這個類的功能很強(qiáng)大。先貼官方代碼:
+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType; // returns YES if source is available (i.e. camera present)
這是一個類方法,直接用UIImagePickerController調(diào)用就可以。參數(shù)sourceType是一個枚舉:
typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
UIImagePickerControllerSourceTypePhotoLibrary, //圖庫
UIImagePickerControllerSourceTypeCamera, //相機(jī)
UIImagePickerControllerSourceTypeSavedPhotosAlbum //相冊
} __TVOS_PROHIBITED;
因此我們調(diào)用以下方法,根據(jù)返回的Bool值就可以判斷相機(jī)是否可以使用(Xcode的虛擬器的相機(jī)功能是不可用的)
- (BOOL)isCameraAvailable{
return [UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera];
}
檢測閃光燈是否可以使用
- (BOOL)isRearCameraAvailable {
return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear]; //后置攝像頭的閃光燈
// return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceFront]; 前置攝像頭的閃光燈
}
1234