iOS 8 Camera Privacy Settings

The AVFoundation framework introduced privacy controls for the microphone and camera in iOS 7. This was explained in WWDC 2013 Session #610 What’s New in Camera Capture. In brief you should not assume that the call to create an AVCaptureDeviceInput will succeed:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (deviceInput)
    // Access to the camera succeeded.

The first time an iOS 7 application requests access to the camera the user could be presented with a dialog asking for permission:

I stress the word could as I never once saw this behaviour in the UK. The previously mentioned WWDC session does give a hint why:

In some regions, law requires user consent to use the camera or mic

I never found a definitive statement as to which regions this was actually required behaviour so I was left wondering if I was missing something. That mystery has been solved this week when I finally got around to running the QR code capture sample project on an iOS 8 device and saw the dialog asking for permission.

This is confirmed by Apple in the WWDC 2014 Session #510 Camera Capture: Manual Controls. The camera privacy control is now required by iOS 8 for all regions. Previously it was difficult to test an iOS 7 app for the refusal case if you happen to live in a region where it is not required by law. Now with iOS 8 you can finally check that you handle the refusal gracefully.

Never Miss A Post

Sign up to get my iOS posts and news direct to your inbox and I'll also send you my free iOS Size Classes Cheat Sheet

    Unsubscribe at any time. See Privacy Policy.

    Archives Categories