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

如何检测用户在iOS上授予麦克风权限?,第1张

概述所以我需要在用户给出(或拒绝)使用麦克风权限后调用某个函数. 我已经看到了这个: [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { // Microphone enabled code [self som 所以我需要在用户给出(或拒绝)使用麦克风的权限后调用某个函数.

我已经看到了这个:

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOol granted) {        if (granted) {            // Microphone enabled code            [self someFunction];        }        else {            // Microphone Disabled code        } }];

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

如果当前状态为“no”并且d出窗口显示且用户提供权限 – 则不会调用该函数.那是因为在执行此 *** 作的那一刻,权限是“否”,直到我们下次运行代码时才会调用该函数.

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

谁知道怎么做?

编辑:
忘了提它它必须是iOS 7.0兼容的解决方案.

解决方法 在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;}
总结

以上是内存溢出为你收集整理的如何检测用户在iOS上授予麦克风权限?全部内容,希望文章能够帮你解决如何检测用户在iOS上授予麦克风权限?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1094985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存