如何检测在iOS上授予麦克风权限的用户?

维希

因此,在用户授予(或拒绝)使用麦克风的权限后,我需要调用某些功能。

我已经看到了:

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
        if (granted) {
            // Microphone enabled code
            [self someFunction];

        }
        else {
            // Microphone disabled code
        }
 }];

但是,这仅适用于检测当前状态。

如果当前状态为“否”,并显示弹出窗口,并且用户授予权限-该函数将不会被调用。这是因为在执行此操作时,权限为“ no”,并且在下次运行代码之前,不会调用该函数。

我想做的是在用户按下“允许”或“拒绝”之后调用一个函数。

有人知道该怎么做吗?

编辑:忘记提及它必须是iOS 7.0向上兼容的解决方案。

Bamsworld

iOS 8中引入AVAudioSession方法recordPermission这将返回一个名为AVAudioSessionRecordPermission的枚举您可以使用开关来确定是否已向用户显示权限警报。这样,您仅在未向用户显示requestRecordPermission时才调用它,因此,权限块可以假定它是在用户首次允许或禁止允许之后执行的。

例如:

AVAudioSessionRecordPermission permissionStatus = [[AVAudioSession sharedInstance] recordPermission];

switch (permissionStatus) {
     case AVAudioSessionRecordPermissionUndetermined:{
          [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
          // CALL YOUR METHOD HERE - as this assumes being called only once from user interacting with permission alert!
              if (granted) {
                  // Microphone enabled code
              }
              else {
                  // Microphone disabled code
              }
           }];
          break;
          }
     case AVAudioSessionRecordPermissionDenied:
          // direct to settings...
          break;
     case AVAudioSessionRecordPermissionGranted:
          // mic access ok...
          break;
     default:
          // this should not happen.. maybe throw an exception.
          break;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找出哪个麦克风设备用户授予了权限?

使用DetectRTC检测麦克风权限

在没有显示提示的情况下检查iOS 7上的麦克风权限

重置iOS 7麦克风访问权限

如何在Chrome上触发麦克风权限弹出窗口(javascript)

在麦克风上检测到语音时运行的脚本

如何检测程序是否从麦克风录音?

如何通过麦克风使用语音为我网页上的用户自动填写表单?

Flutter在按下按钮或发生事件时授予相机和麦克风权限

如何关闭麦克风?

是否可以检查用户是否具有摄像头和麦克风,以及是否已使用Javascript授予权限?

询问Android的麦克风权限

拒绝时显示麦克风权限

如何在 Linux 上收听麦克风输出?

在Linux上麦克风静音时如何收听?

C#-麦克风噪音检测

iOS:如何检测是否将语音命令用于UITextField?或在键盘上点击了麦克风按钮

如何在任务栏上仅显示Cortana的“麦克风”图标,而不是搜索字段+麦克风?

iOS权限-理想的麦克风权限对话框文本

禁止用户访问麦克风

麦克风无法在ArchLinux上使用

麦克风无法在Skype上使用

Debian 10上的麦克风问题

麦克风无法在 Linux 上录音

WebRTC:无法进行对等连接。浏览器不要求授予对麦克风/网络摄像头的权限

如何在 iOS Safari 上使用 Daily.co 录制麦克风同时进行视频通话

iOS-检测“吹入麦克风”并转换结果!(迅速)

在Ubuntu 18.04上未检测到USB麦克风AKG感知120

如何监控麦克风的音量?