温馨提示:本文翻译自stackoverflow.com,查看原文请点击:objective c - iOS check if application has access to microphone
ios objective-c swift microphone avaudiosession

objective c - iOS检查应用程序是否可以访问麦克风

发布于 2020-03-29 13:16:28

随着iOS 7的引入,应用程序在想要录制音频时必须请求访问麦克风。

如何检查应用程序是否可以访问麦克风?
在iOS 8 SDK中,我可以使用AVAudioSessionRecordPermission枚举,但是如何在iOS 7中进行检查?

信息:
我不想请求权限,我只想检查应用程序是否可以访问麦克风。(例如位置访问权限):

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
    // Do something
}

查看更多

查看更多

提问者
130e13a
被浏览
139
2017-05-23 20:09

iOS7这种情况下,无法获取.v的当前状态。microphone authorization他们已将枚举指定iOS8AVAudioSessionRecordPermission

iOS7你的每一个随着时间的推移请求允许

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
        if (granted) {
            NSLog(@"Permission granted");
        }
        else {
            NSLog(@"Permission denied");
        }
    }];

之前曾问过同样的问题,但是没有像您这样的api可以知道当前状态 iOS8

您可以参考在iOS 7上检查麦克风权限,而无需显示提示

解:

另一个选项是,您可以第一次显示popup或寻求许可,并保存从中选择的用户选项的状态,然后再不请求许可。在docs中,如果不需要获取用户许可,则无需显式调用此函数。当您尝试记录时,它将在第一次时自动调用 NSUserDefaultsAVAudioSession

录制音频需要用户的明确许可。当您的应用程序的音频会话在尝试使用启用录音的类别(请参阅“音频会话类别”)时,第一次尝试使用音频输入路径时,系统会自动提示用户进行许可;或者,您可以调用requestRecordPermission:在您选择的时间提示用户