转自:http://borissun.iteye.com/blog/1992303
装了iOS7的ip5的隐私设置里多了相机这一项(ip4装iOS7就没有)。
如果隐私里把你的app对应的相机给关了,那打开就会是个黑屏。因此要判断是不是出现了这样的情况。
第一反应肯定是去UIImagePickerController里找对应方法,然后以下2个方法看起来似乎非常满足这个需求:
- //这俩全不管用!!!
- [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
- [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
但是上边这俩全不管用!永远返回YES。。。
又查了下,发现竟然需要用AVFoundation。因此需要先把AVFoundation给Link进来,然后调用:
- BOOL isCameraValid = YES;
- //判断iOS7的宏,没有就自己写个,下边的方法是iOS7新加的,7以下调用会报错
- if(isIOS7AndLater)
- {
- AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
- if (authStatus != AVAuthorizationStatusAuthorized)
- {
- isCameraValid = NO;
- }
- }
- }