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

Posted

技术标签:

【中文标题】iOS 9 - 为照片请求相机授权【英文标题】:iOS 9 - Request Camera authorisation for photos 【发布时间】:2015-10-07 10:15:38 【问题描述】:

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

过了一会儿,我发现你可以使用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 框架,但它只提供对照片库的访问,而不是相机。

【问题讨论】:

是的,它会起作用的。您在实际设备中尝试过上述代码吗? @MidhunMP Ahhh....我太傻了...我在模拟器上测试这个。刚刚在真正的 iDevice 上进行了测试,它可以工作。谢谢。 【参考方案1】:

对于 ios 9,您应该在 Info.plist 中输入您的应用名称和键:“Bundle Display Name”。

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

改变这个

Info.plist

到这里

Info.plist

【讨论】:

感谢有人可以帮我将网址更改为图片。【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

plist 在哪里?我输入了它,它更正为“捆绑显示名称”。我认为它是一样的

以上是关于iOS 9 - 为照片请求相机授权的主要内容,如果未能解决你的问题,请参考以下文章

什么触发照片库授权请求? iOS

我无需请求许可即可访问 iOS 照片库

删除 PHAsset 时禁用授权请求

iOS 相机授权 - 错误状态

iOS 定位服务通讯录日历提醒事项照片蓝牙共享麦克风相机等授权检测

iOs自动处理相机权限吗?