麦克风权限未按预期工作

时间:2015-01-08 16:49:33

标签: ios permissions ios8 microphone avaudiosession

我正在处理需要麦克风访问/录制的应用。到目前为止,我认为我的权限处理工作正常,但我的TestFlight beta测试人员无法使用麦克风功能,即使它在模拟器和iOS7测试设备中工作。

这是我的权限代码:

AVAudioSession *session = [AVAudioSession sharedInstance];
    if ([session respondsToSelector:@selector(requestRecordPermission:)]) {
        [session performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
            if (granted) {
                //granted
            }
            else {
                //not granted
                }
        }
        ];
    }else{
        //iOS6 seems to be missing this feature -> always available
    }

我无法重现提示,即使重置隐私和模拟器上的位置,也意味着提示永远不会出现。不过,我可以在模拟器上使用麦克风,就像获得许可一样。

一个重要的事情是,应用程序未列为隐私条款下的麦克风访问应用程序(显然应该)。

如果我打印iOS8标志[AvAudioSession sharedInstance].recordPermission,即使上述许可请求完成后,它仍然是AVAudioSessionRecordPermissionUndetermined

一小段测试代码:

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
        NSLog(@"GRANTED: %i", granted);
    }];
    NSLog(@"RECORD PERMISSION: %i", [AVAudioSession sharedInstance].recordPermission == AVAudioSessionRecordPermissionUndetermined?1:0);

为我产生输出:"授予:1""记录许可:1"这应该是不可能的,对吗?

这使得它目前无法在iOS8下使用我的应用程序。

1 个答案:

答案 0 :(得分:2)

模拟器不会对麦克风访问执行权限提示,也不会在“隐私”下列出它们。它只是允许录音工作。你必须在真实的​​设备上进行测试,我很害怕。

相关答案:requestRecordPermission does nothing