With the new functionality in iOS 8, if you are using a camera in the app, it will ask for permission to access the camera and then when you try to retake the pic, it asks for permission to access photo library. Next time when I launch the app, I wish to check if the camera and photo library has access permissions to it.
For camera, I check it by
if ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusDenied) { // do something }
I am looking for something similar to this for photo library.
When you give access to an app to photos (either through the prompt that comes when the app tries to access photos or through Settings > Privacy > Photos), the app gets access to write new photos/images to your Camera Roll and to read all your photos on the device in an unencrypted form.
To access the camera in Swift, we first must ask the user for permission. Open up your Info. plist file from your Project Navigator. Then right click and click Add Row .
I know this has already been answered, but just to expand on @Tim answer, here is the code you need (iOS 8 and above):
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; if (status == PHAuthorizationStatusAuthorized) { // Access has been granted. } else if (status == PHAuthorizationStatusDenied) { // Access has been denied. } else if (status == PHAuthorizationStatusNotDetermined) { // Access has not been determined. [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { if (status == PHAuthorizationStatusAuthorized) { // Access has been granted. } else { // Access has been denied. } }]; } else if (status == PHAuthorizationStatusRestricted) { // Restricted access - normally won't happen. }
Don't forget to #import <Photos/Photos.h>
If you are using Swift 3.0 or higher, you can use the following code:
// Get the current authorization state. let status = PHPhotoLibrary.authorizationStatus() if (status == PHAuthorizationStatus.authorized) { // Access has been granted. } else if (status == PHAuthorizationStatus.denied) { // Access has been denied. } else if (status == PHAuthorizationStatus.notDetermined) { // Access has not been determined. PHPhotoLibrary.requestAuthorization({ (newStatus) in if (newStatus == PHAuthorizationStatus.authorized) { } else { } }) } else if (status == PHAuthorizationStatus.restricted) { // Restricted access - normally won't happen. }
Don't forget to import Photos
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With