随着iOS 7的推出,应用程序必须在想要录制音频时请求麦克风访问.
如何检查应用程序是否可以访问麦克风?
在iOS 8 SDK中我可以使用AVAudioSessionRecordPermission枚举,但如何在iOS 7中检查?
信息:
我不想请求权限,我只想检查应用是否可以访问麦克风.(如位置访问权限):
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
// Do something
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我将使用麦克风进行一些录制.从iOS7.0开始,要求用户在开始音频之前检查访问麦克风的权限.
我的应用中有一个"开始录制"按钮.这里首先检查用户的录制许可.
这是执行此操作的代码:
if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) {
[[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:)
withObject:permissionBlock];
}
#ifndef __IPHONE_7_0
typedef void (^PermissionBlock)(BOOL granted);
#endif
PermissionBlock permissionBlock = ^(BOOL granted) {
NSLog(@"permissionBlock");
if (granted) {
[self doActualRecording];
} else {
// Warn no access to microphone
}
};
Run Code Online (Sandbox Code Playgroud)
现在,我想要让用户在用户启动应用程序时授权使用麦克风.然后当用户选择"录制"按钮时,它会再次发出弹出消息.
Location服务也会发生类似的功能.我怎样才能进行麦克风访问?