как можно использовать shouldShowRequestPermissionRationale до разрешения вызова и использования в Activity.
потому что до ActivityCompat.requestPermissions это возвращает false
if (ActivityCompat.shouldShowRequestPermissionRationale(context,permission)){
// true
}else{
// false (always false)
}




Метод shouldShowRequestPermissionRationale возвращает истину, если требуется объяснить пользователю, почему требуется разрешение. При первом запросе разрешения этот метод возвращает ложный.
Но если пользователь отказывает в разрешении один раз, когда разрешение запрашивается в другой раз, этот метод возвращает истинный, потому что может быть хорошей идеей объяснить пользователю, почему это разрешение требуется для приложения.
Когда разрешение уже предоставлено, этот метод вернет ложный.
Поэтому хорошей практикой было бы сначала проверить, что возвращает этот метод, и, если это требуется, объяснить пользователю, объяснить это с помощью диалогового окна или чего-то еще, а затем запросить разрешение, в противном случае запросить разрешение напрямую.
Вы также можете взглянуть на мой библиотека, который упрощает весь этот процесс и другие процессы в отношении разрешений времени выполнения.
используйте это для разрешения запроса его потрясающий stackoverflow.com/a/49201404/9130109