我有一个应用程序,需要能够拍照(而不是视频)。我正在网上查找如何检测用户是否已授予相机权限。
过了一会儿,我发现你可以用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
框架,但这只能提供对照片库的访问,而不是相机。
答案 0 :(得分:1)
是的,我的问题中的代码确实有用,我只是愚蠢并在iOS模拟器上进行测试,而不是在真正的iDevice上......我想我需要休息一下:)
答案 1 :(得分:1)
使用iOS 9,您应该使用键输入您的应用名称:&#34; Bundle Display Name&#34;在Info.plist。
感谢https://stackoverflow.com/a/32880876/4628777
更改此
到这个
答案 2 :(得分:0)
在iOS 9的Info.plist中设置 CFBundleDisplayName =“AppName”