Запрос разрешения в Android | Невозможно разрешить символ MY_PERMISSIONS_REQUEST_READ_CONTACTS

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

if (ContextCompat.checkSelfPermission(MainActivity.this,
            Manifest.permission.READ_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {

        // Permission is not granted
        if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
                Manifest.permission.READ_EXTERNAL_STORAGE)) {
        } else {
            ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{Manifest.permission.READ_CONTACTS},
                    MY_PERMISSIONS_REQUEST_READ_CONTACTS);
        }
    } else {
        // Permission has already been granted
    }

Прямо как здесь

Теперь Android Studio сообщает мне: не удается разрешить символ MY_PERMISSIONS_REQUEST_READ_CONTACTS

Почему это?

Прошу прощения, если этот вопрос задавали раньше, но я посмотрел и не нашел ответа на свою проблему.

заранее спасибо

Максимум

0
0
3 834
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам необходимо объявить эту переменную перед ее использованием. Попробуйте добавить эту строку

 public static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 100;// . or any other value
Ответ принят как подходящий

как уже упоминалось

    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.

так что объявите это, лучше создать отдельный класс как

class Constants{
    public static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 100;
}

и использовать его как

ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{Manifest.permission.READ_CONTACTS},
                    Constants.MY_PERMISSIONS_REQUEST_READ_CONTACTS);

Вы не могли бы предоставить / указать ресурс, где мы могли бы найти правильное значение для каждого разрешения?

Adi Prasetyo 02.03.2020 13:55

@AdiPrasetyo постоянное значение может быть любым (например, номер рулона в одном классе (Activity)), но должно быть уникальным, чтобы вы могли реализовать поток управления соответствующим образом, несмотря на фактические константы разрешений см. класс Manifest

Pavneet_Singh 02.03.2020 16:44

Это сообщение ниже находится по отправленной вами ссылке

MY_PERMISSIONS_REQUEST_READ_CONTACTS is an app-defined int constant. The callback method gets the result of the request.

MY_PERMISSIONS_REQUEST_READ_CONTACTS - это переменная типа int, вы можете использовать ее для получения результата вашего запроса. Если вам не нужен результат, просто введите 0 (или другой int> 0)

MY_PERMISSIONS_REQUEST_READ_CONTACTS - это константа, определяемая приложением. Следовательно, вы должны создать общедоступный статический int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 45; Я беру в качестве примера 45, но может быть любой постоянной.

Другие вопросы по теме