React Native 检查我是否有权限

React Native check if I have permission

我写了一个应用程序,可以录制音频并进行实时分析。为此,我必须首先请求使用麦克风的许可,因此我为此制作了一个单独的按钮,但我不喜欢该解决方案。该按钮运行此功能:

const requestMicrophone = async () => {
  //replace your function with this code.
  if (Platform.OS === 'android') {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
        {
          title: 'Permissions for record audio',
          message: 'Give permission to your device to record audio',
          buttonPositive: 'ok',
        },
      );
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        console.log('permission granted');
      } else {
        console.log('permission denied');
        return;
      }
    } catch (err) {
      console.warn(err);
      return;
    }
  }
};

现在我想检查我是否有使用麦克风的权限。如果是,则渲染录音组件。我试过这个:

if (PermissionsAndroid.PERMISSIONS.RECORD_AUDIO) {
      rec = <Recorder/>;
    } else {
      rec = <Text>Ask for microphone permission first!</Text>;
    }

但是这不会检查我是否有权使用麦克风。我从中得到了什么

console.log(PermissionsAndroid.PERMISSIONS.RECORD_AUDIO);

就是

[Wed Nov 18 2020 18:59:44.878]  LOG      android.permission.RECORD_AUDIO

我找不到任何地方如何检查我是否有权使用麦克风?

经过大量谷歌搜索,我找到了答案:

export const checkMicrophone = async () => {
   const result = await PermissionsAndroid.check(
      PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
   );
   return result;
};