requestRecordPermission什么都不做

自iOS 7更新以来,录制应用程序发生了一些变化。 我有一个应用程序,曾经与iOS 5和6,但当我试图在iOS 7上运行它 – 录音没有回应。

我查了一下互联网,看到有一个需要调用的新方法。 我试图把这个代码放在viewDidAppear中:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) { [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { NSLog(@"permission : %d", granted); }]; } } 

“授予”始终是1,虽然我没有授予任何许可,也没有看到任何请求popup。

顺便说一句我想要处理这个使用Xcode 4.6.3。 我用requestRecordPermission方法为AVAudioSession做了一个类,因为这个方法只在iOS 7中可用。

谢谢。

我在iOS7模拟器上testing时遇到了同样的问题,它看起来像requestRecordPermission不能在模拟器中工作,“授予”总是返回YES。 你必须在真实的​​设备上进行testing。

如果您已经在设备上testing过一次并回复了权限popup窗口,那么只有重置位置和隐私权之后,才能再次popup权限窗口。

要重置位置和隐私,请按以下步骤操作

 Go to Settings -> General -> Reset -> Reset Location & Privacy and then press "Reset Warnings" when asked. 

一旦你给应用程序的audio权限。 您的应用程序不会再显示权限提示。

如果你想testing它,改变你的应用程序的包ID和尝试。

相同的iOS 8模拟器。 AVAudioSession.sharedInstance().requestRecordPermission总是返回true.On另一方面当你打电话

 UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 

要在模拟器上打开应用程序的设置,麦克风从不会在那里列出。这需要在真实设备上进行testing。

添加隐私 – 您的信息plist中的麦克风使用说明,以授予应用程序访问权限。 这是导致我Thread13:信号SIGABRT错误。 完成后,错误自动解决。