首页 > 解决方案 > react-native RECEIVE_SMS android权限总是导致'never_ask_again'

问题描述

我正在请求多个权限。除了接收结果始终为'never_ask_again' 的短信外,一切工作正常。

以下是我正在尝试的代码:

_getPermissions = async () => {
try {
  const resuts = await PermissionsAndroid.requestMultiple([
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
    PermissionsAndroid.PERMISSIONS.RECEIVE_SMS,
    PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE
  ]);
  if (
    resuts[PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION] !==
    PermissionsAndroid.RESULTS.GRANTED
  ) {
    alert("Permission not granted. The application may not work properly");
  }
  if (
    resuts[PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE] !==
    PermissionsAndroid.RESULTS.GRANTED
  ) {
    alert("Permission not granted. The application may not work properly");
  }
  if (
    resuts[PermissionsAndroid.PERMISSIONS.RECEIVE_SMS] !==
    PermissionsAndroid.RESULTS.GRANTED
  ) {
    alert("Permission not granted. The application may not work properly");
  }
} catch (err) {
  console.warn(err);
}
};

标签: androidreact-nativereact-native-androidandroid-permissions

解决方案


将此行修复为相反的条件:

if (
  resuts[PermissionsAndroid.PERMISSIONS.RECEIVE_SMS] ===
  PermissionsAndroid.RESULTS.DENIED
) {
  Alert.alert("Permission not granted. The application may not work properly");
}

推荐阅读