我有一个应用程序,需要能够拍照(而不是视频)。我在网上查找,以了解如何检测用户是否已授予相机许可。
过了一会儿,我发现您可以使用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框架,但它只提供了对照片库的访问,而不是对相机的访问。
发布于 2015-10-07 10:49:29
是的,我问题中的代码确实有效,我只是在iOS模拟器上测试它,而不是在真正的iDevice上测试.我想我需要休息一下咖啡:)
发布于 2016-01-21 10:17:06
使用iOS 9,您应该在Info.plist中输入您的应用程序名,键为:"Bundle Display Name“。
多亏了这个https://stackoverflow.com/a/32880876/4628777
改变这个
到这个
发布于 2015-11-17 12:47:04
设置CFBundleDisplayName = "AppName" in Info.plist for iOS 9
https://stackoverflow.com/questions/32989614
复制相似问题