iOS 9 - 请求照片的相机授权
iOS 9 - Request Camera authorisation for photos
我有一个应用程序需要能够拍照(不是视频)。我在网上寻找如何检测用户是否已授予相机权限。
一段时间后,我发现您可以使用 AVAuthorizationStatus
来解决这个问题。但是,在 Apple 文档中它说:
Calling this method with any media type other than AVMediaTypeVideo or
AVMediaTypeAudio raises an exception.
那我想拍照怎么办?我怎么做?没有 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
框架,但它只提供对照片库的访问,而不是相机。
是的,我问题中的代码确实有效,我只是在 iOS 模拟器而不是真正的 iDevice 上测试它是愚蠢的......我想我需要喝杯咖啡休息一下: )
在 Info.plist 中设置 CFBundleDisplayName = "AppName" for iOS 9
使用 iOS 9,您应该在 Info.plist.
中使用密钥输入您的应用程序名称:"Bundle Display Name"
多亏了这个
改变这个
Info.plist
至此
Info.plist
我有一个应用程序需要能够拍照(不是视频)。我在网上寻找如何检测用户是否已授予相机权限。
一段时间后,我发现您可以使用 AVAuthorizationStatus
来解决这个问题。但是,在 Apple 文档中它说:
Calling this method with any media type other than AVMediaTypeVideo or AVMediaTypeAudio raises an exception.
那我想拍照怎么办?我怎么做?没有 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
框架,但它只提供对照片库的访问,而不是相机。
是的,我问题中的代码确实有效,我只是在 iOS 模拟器而不是真正的 iDevice 上测试它是愚蠢的......我想我需要喝杯咖啡休息一下: )
在 Info.plist 中设置 CFBundleDisplayName = "AppName" for iOS 9
使用 iOS 9,您应该在 Info.plist.
中使用密钥输入您的应用程序名称:"Bundle Display Name"多亏了这个
改变这个
Info.plist
至此
Info.plist