Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determine if the access to photo library is set or not - PHPhotoLibrary

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.

enter image description here

For camera, I check it by

if ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusDenied) { // do something } 

I am looking for something similar to this for photo library.

like image 576
tech_human Avatar asked Oct 27 '14 19:10

tech_human


People also ask

What does allow access to photos mean?

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.

How do I check camera permissions in Swift?

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 .


1 Answers

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

like image 52
Supertecnoboff Avatar answered Oct 09 '22 14:10

Supertecnoboff