我正在使用此代码测试用户是否启用了麦克风权限:
- (void)checkAudioPermissions {
switch ([[AVAudioSession sharedInstance] recordPermission]) {
case AVAudioSessionRecordPermissionGranted:
// Audio permission already granted.
[self initAudioSession];
break;
case AVAudioSessionRecordPermissionDenied:
// User previously denied the iOS Microphone Permissions
[self audioDeniedAlert];
break;
case AVAudioSessionRecordPermissionUndetermined:
// Initial state before a user has made any choice
[self preRequestAudioRecordingPermission];
break;
default:
break;
}
}
如果我为我的应用禁用了麦克风,则会触发AVAudioSessionRecordPermissionDenied
案例并向用户显示UIAlertView
,这样用户就可以打开“设置应用”。
如果我打开设置应用,启用麦克风,点击屏幕左上角的< Back to App
按钮,然后重新运行switch
...它跳过{{1并再次运行AVAudioSessionRecordPermissionGranted
个案。
如果我终止并重新启动应用,则会触发AVAudioSessionRecordPermissionDenied
案例。
重新运行AVAudioSessionRecordPermissionGranted
时是否需要执行某些操作,以便在不重新启动应用程序的情况下触发switch
?
感谢您的帮助。