iOS 判斷是否有權限訪問相機,相冊

1.判斷用戶是否有權限訪問相冊

#import <AssetsLibrary/AssetsLibrary.h>
ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
if (author == kCLAuthorizationStatusRestricted || author ==kCLAuthorizationStatusDenied)
{
       //無權限
}

可以注意一下下面這個

typedef enum {
      kCLAuthorizationStatusNotDetermined = 0, // 用戶尚未做出選擇這個應用程序的問候
      kCLAuthorizationStatusRestricted,        // 此應用程序沒有被授權訪問的照片數(shù)據(jù)??赡苁羌议L控制權限
      kCLAuthorizationStatusDenied,            // 用戶已經(jīng)明確否認了這一照片數(shù)據(jù)的應用程序訪問
      kCLAuthorizationStatusAuthorized         // 用戶已經(jīng)授權應用訪問照片數(shù)據(jù)
} CLAuthorizationStatus;

iOS 8 之后推薦用 #import <Photos/Photos.h> 中的判斷

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusRestricted ||
    status == PHAuthorizationStatusDenied) {
    return NO;
}
return YES;
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
    PHAuthorizationStatusNotDetermined = 0, // 默認還沒做出選擇
    PHAuthorizationStatusRestricted,        // 此應用程序沒有被授權訪問的照片數(shù)據(jù)
    PHAuthorizationStatusDenied,            // 用戶已經(jīng)明確否認了這一照片數(shù)據(jù)的應用程序訪問
    PHAuthorizationStatusAuthorized         //  用戶已經(jīng)授權應用訪問照片數(shù)據(jù)
} NS_AVAILABLE_IOS(8_0);
推薦使用
- (BOOL)isCanUsePhotos {

    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) {
        ALAuthorizationStatus author =[ALAssetsLibrary authorizationStatus];
        if (author == kCLAuthorizationStatusRestricted || author == kCLAuthorizationStatusDenied) {
            //無權限
            return NO;
        }
    }
    else {
        PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
        if (status == PHAuthorizationStatusRestricted ||
            status == PHAuthorizationStatusDenied) {
            //無權限
            return NO;
        }
    }
    return YES;
}

但實際上系統(tǒng)會提示下面一張圖,可以不做判斷的,哈哈哈

英語環(huán)境下的沒有權限

2.判斷用戶是否有權限訪問相機

iOS7之前都可以訪問相機,iOS7之后訪問相機有權限設置,所以還是需要我們手動去設置判斷。

  #import <AVFoundation/AVCaptureDevice.h>
  #import <AVFoundation/AVMediaFormat.h>

  AVAuthorizationStatus authStatus =  [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
  if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)
  {
        //無權限
  }
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
        AVAuthorizationStatusNotDetermined = 0,// 系統(tǒng)還未知是否訪問,第一次開啟相機時
        AVAuthorizationStatusRestricted, // 受限制的
        AVAuthorizationStatusDenied, //不允許
        AVAuthorizationStatusAuthorized // 允許狀態(tài)
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容