iOS 9 - 请求授权访问照片摄像头

4
我有一个应用程序需要能够拍照(不是视频)。我在网上找到了如何检测用户是否已授予相机权限的方法。经过一番查询,我发现可以使用 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框架,但它只提供访问照片库的权限,而不能使用相机。


是的,它会起作用。你在实际设备上尝试过上面的代码吗? - Midhun MP
1
@MidhunMP 啊啊啊....我太蠢了...我一直在模拟器上测试。刚刚在真实的iDevice上测试了一下,它可以工作。谢谢。 - Supertecnoboff
3个回答

2

谢谢如果有人能帮我将URL更改为图像。 - stan liu

1

是的,我问题中的代码确实有效,我只是太蠢了,在iOS模拟器上测试它而不是在真正的iDevice上......我想我需要喝咖啡休息一下 :)


0
在iOS 9中,可以在Info.plist中设置CFBundleDisplayName = "AppName"

那在plist文件中的哪里?我输入后它自动更正为“Bundle display name”。我猜应该是一样的。 - noobsmcgoobs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接