Документация разработчика Android дает этот пример запроса разрешений во время выполнения:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
// 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, определяемая приложением, но означает ли это, что я должен создать Constants.java и объявить открытый static int? Каким должно быть значение?
В других примерах я вижу, что люди используют 1 здесь, или 0 или 0xFFEEDDCC, но я не могу найти объяснения, что это такое. Может кто-нибудь объяснить мне, что нужно здесь и почему? (В моем случае мне нужно убедиться, что у приложения есть разрешение на доступ к прекрасному местоположению)
Документация ActivityCompat гласит: "Код запроса конкретного приложения соответствует результату, указанному в onRequestPermissionsResult"? Это не помогает мне.