【问题标题】: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.")
}
})
【问题讨论】:
标签:
android
react-native
android-camera
react-native-android
react-native-camera
【解决方案1】:
请尝试以下方法:
PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA).then(response => { ..
而不是
PermissionsAndroid.check('camera').then(response => { ..
【解决方案2】:
这里我用的是async、await和promise,稍微好理解一点。
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;
}
}
}