Я пытаюсь получить доступ к файлам пользователя, и я пробовал это так:
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
Почему это?
Прошу прощения, если этот вопрос задавали раньше, но я посмотрел и не нашел ответа на свою проблему.
заранее спасибо
Максимум
Вам необходимо объявить эту переменную перед ее использованием. Попробуйте добавить эту строку
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);
@AdiPrasetyo постоянное значение может быть любым (например, номер рулона в одном классе (Activity)), но должно быть уникальным, чтобы вы могли реализовать поток управления соответствующим образом, несмотря на фактические константы разрешений см. класс Manifest
Это сообщение ниже находится по отправленной вами ссылке
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, но может быть любой постоянной.
Вы не могли бы предоставить / указать ресурс, где мы могли бы найти правильное значение для каждого разрешения?