如何检查用户是不是已在 React Native Android 中授予相机权限?

Posted

技术标签:

【中文标题】如何检查用户是不是已在 React Native Android 中授予相机权限?【英文标题】:How to check if user has granted camera permission in React Native Android?如何检查用户是否已在 React Native Android 中授予相机权限? 【发布时间】:2018-06-07 06:44:31 【问题描述】:

应用程序启动后,我立即从用户那里获得使用相机的权限。但是在打开摄像头之前,如果我检查用户是否授予摄像头权限,即使允许,我也会得到“假”的响应。

这是我的代码:

Permissionsandroid.check('camera').then(response => 
            if (response === true)
                //Open scanner
            
            else if (response === false)
                Alert("Please enable camera permission in device settings.")
            
        )

【问题讨论】:

【参考方案1】:

请尝试以下方法:

PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA).then(response =>  ..

而不是

PermissionsAndroid.check('camera').then(response =>  ..

【讨论】:

【参考方案2】:

这里我用的是asyncawaitpromise,稍微好理解一点。

import PermissionsAndroid from 'react-native';

export const checkReadContactsPermission = async ()=>    

  //result would be false if not granted and true if required permission is granted.
  const result =  await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA);
  return result;

【讨论】:

【参考方案3】:

首先导入依赖

import  PermissionsAndroid, Platform  from 'react-native';

然后在您的活动中使用以下代码

if(Platform.OS=="android")
      const permissionAndroid = await PermissionsAndroid.check('android.permission.CAMERA');
      if(permissionAndroid != PermissionsAndroid.RESULTS.granted)
        const reqPer = await PermissionsAndroid.request('android.permission.CAMERA');
        if(reqPer != 'granted')
          return false;
        
      
    

【讨论】:

以上是关于如何检查用户是不是已在 React Native Android 中授予相机权限?的主要内容,如果未能解决你的问题,请参考以下文章

检查是不是在 React Native iOS 应用程序中打开了 WiFi

React Native 检查是不是在 Android 上启用了应用通知

React Native:如何检查是不是已授予地理定位权限

React Native - Expo - 如何检查是不是启用了暗模式?

React Native:如何检查用户是否已授予gps权限

如何使用 Detox 在 React Native 中检查是不是选择或禁用了特定元素?