iOS 9 - 请求照片的相机授权

时间:2015-10-07 10:15:39

标签: ios objective-c cocoa-touch avfoundation avcapturedevice

我有一个应用程序,需要能够拍照(而不是视频)。我正在网上查找如何检测用户是否已授予相机权限。

过了一会儿,我发现你可以用AVAuthorizationStatus来解决这个问题。然而,在Apple文档上它说:

  

使用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框架,但这只能提供对照片库的访问,而不是相机。

3 个答案:

答案 0 :(得分:1)

是的,我的问题中的代码确实有用,我只是愚蠢并在iOS模拟器上进行测试,而不是在真正的iDevice上......我想我需要休息一下:)

答案 1 :(得分:1)

使用iOS 9,您应该使用键输入您的应用名称:&#34; Bundle Display Name&#34;在Info.plist。

感谢https://stackoverflow.com/a/32880876/4628777

更改此

Info.plist

到这个

Info.plist

答案 2 :(得分:0)

在iOS 9的Info.plist中设置 CFBundleDisplayName =“AppName”