2015-10-07 72 views
3

我有一个应用程序需要能够拍照(而不是视频)。我在网上查找了解如何检测用户是否授予相机权限。iOS 9 - 请求照片相机授权

经过一段时间,我发现你可以使用AVAuthorizationStatus来解决这个问题。然而,在苹果文档的说:

调用此方法比其他AVMediaTypeVideo任何媒体类型或 AVMediaTypeAudio抛出一个异常。

那么,如果我想拍一张照片呢?我怎么做?没有AVMediaTypePhoto,我一直无法找出如何以任何其他方式授权摄像头访问。

这是我在网上找到的授权示例代码,但我不知道如果你只是想拍照,它是否会工作。

#import <AVFoundation/AVFoundation.h> 

AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 

    if(status == AVAuthorizationStatusAuthorized) { // authorized 

    } 
    else if(status == AVAuthorizationStatusDenied){ // denied 

    } 
    else if(status == AVAuthorizationStatusRestricted){ // restricted 


    } 
    else if(status == AVAuthorizationStatusNotDetermined){ // not determined 

     [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { 
      if(granted){ // Access has been granted ..do something 

      } else { // Access denied ..do something 

      } 
     }]; 
    } 

更新1

我也寻找到了PHPhotoLibrary框架,但只提供了访问照片库,而不是相机。

+0

是的,它会工作。您是否在实际设备中尝试了上述代码? –

+0

@MidhunMP啊......我很愚蠢......我在模拟器上测试了这个。只是在一个真正的iDevice上测试它,它工作。谢谢。 – Supertecnoboff

回答

1

是我的问题的代码不工作,我只是愚蠢和测试它在iOS模拟器,而不是一个真正的iDevice ......我想我需要休息时间:)

0

设置为CFBundleDisplayName =“AppName” in Info.plist for iOS 9

+0

plist在哪里?我输入它并修正为“捆绑显示名称”。我认为这是相同的 – noobsmcgoobs