随着iOS 7的引入,应用程序在想要录制音频时必须请求访问麦克风。
如何检查应用程序是否可以访问麦克风? 在iOS 8 SDK中,我可以使用AVAudioSessionRecordPermission枚举,但是如何在iOS 7中进行检查?
AVAudioSessionRecordPermission
信息: 我不想请求权限,我只想检查应用程序是否可以访问麦克风。(例如位置访问权限):
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { // Do something }
在iOS7这种情况下,无法获取..的当前状态。microphone authorization他们已将枚举指定iOS8为AVAudioSessionRecordPermission
iOS7
microphone authorization
iOS8
在iOS7你的每一个随着时间的推移请求允许
[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { NSLog(@"Permission granted"); } else { NSLog(@"Permission denied"); } }];
之前曾问过同样的问题,但是没有像您这样的api可以知道当前状态 iOS8
解:
另一个选项是您可以 第一次*显示popup或寻求许可,并保存在而不选择许可中选择的用户选项的状态。在docs中,如果不需要获得用户的许可,则无需显式调用此方法。当您尝试记录时,它将在第一次时自动调用 *NSUserDefaults``AVAudioSession
popup
NSUserDefaults``AVAudioSession
录制音频需要用户的明确许可。当您的应用程序的音频会话在使用启用录音的类别(请参阅“音频会话类别”)时,第一次尝试使用音频输入路由时,系统会自动提示用户进行许可;或者,您可以调用requestRecordPermission:在您选择的时间提示用户