一尘不染

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

swift

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

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

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

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

阅读 517

收藏
2020-07-07

共1个答案

一尘不染

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

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

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

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

解:

另一个选项是您可以 第一次*显示popup或寻求许可,并保存在而不选择许可中选择的用户选项的状态。在docs中,如果不需要获得用户的许可,则无需显式调用此方法。当您尝试记录时,它将在第一次时自动调用
*NSUserDefaults``AVAudioSession

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

2020-07-07