我有运行在ios 8和xcode 6上的快速摄像头代码。我打电话给AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo),但我的应用程序没有出现在Settings -> privacy -> Camera中(但其他应用程序会出现)。

升级到ios 9和xcode 7后,无法获得相机许可工作。我在google上搜索了两天,然后就发现了堆栈溢出。
问题
我导入了AVFoundation并调用了AVFoundation总是得到AVAuthorizationStatus.Denied
主要问题是1号。我想如果我能在设置->隐私->摄像头上使用我的应用程序,那么其他问题就解决了。
thigns我试过
我的代码
override func viewDidLoad() {
super.viewDidLoad()
cameraView()
}
func checkCamera() {
let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
switch authStatus {
case AVAuthorizationStatus.Authorized:
print("AVAuthorizationStatus.Authorized")
case AVAuthorizationStatus.Denied:
print("AVAuthorizationStatus.Denied")
case AVAuthorizationStatus.NotDetermined:
print("AVAuthorizationStatus.NotDetermined")
case AVAuthorizationStatus.Restricted:
print("AVAuthorizationStatus.Restricted")
default:
print("AVAuthorizationStatus.Default")
}
}
func cameraView(){
// session
let mySession : AVCaptureSession = AVCaptureSession()
var myDevice : AVCaptureDevice? //= AVCaptureDevice()
let myImageOutput : AVCaptureStillImageOutput = AVCaptureStillImageOutput()
let devices = AVCaptureDevice.devices()
let audioCaptureDevice = AVCaptureDevice.devicesWithMediaType(AVMediaTypeAudio)
let audioInput = (try! AVCaptureDeviceInput(device: audioCaptureDevice[0] as! AVCaptureDevice)) as AVCaptureInput
for device in devices {
if(device.position == AVCaptureDevicePosition.Back){
myDevice = device as? AVCaptureDevice
}
}
let status = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
print(status == AVAuthorizationStatus.Authorized)
print(status == AVAuthorizationStatus.Denied)
print(status == AVAuthorizationStatus.Restricted)
print(status.rawValue)
if status != AVAuthorizationStatus.Authorized {
AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { (granted :Bool) -> Void in
if granted == false {
// Camera not Authorized
dispatch_async(dispatch_get_main_queue()) {
print("Camera not Authorized")
self.checkCamera()
return
}
}
});
}发布于 2015-11-23 08:11:34
您需要设置一个新的Info.plist值,与iOS8中用于Location的字符串相同:
只需为这些设置描述字符串即可。

https://stackoverflow.com/questions/33866135
复制相似问题