Разрешение уже предоставлено, но продолжает сообщать, что не предоставлено REACT-NATIVE

#react-native #android-studio

#react-native #android-studio

Вопрос:

я создаю музыкальный проигрыватель, и мне нужно получить доступ к музыкальным файлам, поэтому первым делом запрашиваю разрешения на доступ к файлам:

 componentDidMount() {
    this.requestPermission();
}

requestPermission = async () => {
 
    try {

        const userResponse = await PermissionsAndroid.requestMultiple([
            PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
            PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
      
        ]);

        if (userResponse === PermissionsAndroid.RESULTS.GRANTED) {
            alert("nice");
        }else {
            alert("no nice");
        }
        
    }catch (error) {
        alert(error)
    }
};
  

даже когда я уже нажал «Разрешить» и перезагрузил проект, он скажет «нет», я открываю конфигурацию приложения, и разрешение на хранение в порядке, так что не понимаю, почему это происходит

Комментарии:

1. Я не уверен, но, насколько я знаю, вы также должны добавить разрешение в свой манифест

Ответ №1:

Согласно документации requestMultiple вернет объект с разрешениями в виде ключей и строк в виде значений (см. Строки результатов выше), указывающие, разрешил ли пользователь или отклонил запрос или не хочет, чтобы его запрашивали снова.

попробуйте это

 if (userResponse[PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE] === PermissionsAndroid.RESULTS.GRANTED amp;amp; userResponse[PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE] ===
 PermissionsAndroid.RESULTS.GRANTED
 ) {
  alert('nice');
 } else {
  alert('no nice');
}