Android: как использовать shouldShowRequestPermissionRationale для проверки состояния разрешений?

android #permissions

#Android #разрешения

Вопрос:

Из документа shouldShowRequestPermissionRationale указывает, следует ли показывать пользовательский интерфейс с обоснованием разрешений.

введите описание изображения здесь

Я нашел:

  1. если изменить одно разрешение на «Уведомлять» и перед первым отображением диалогового окна запроса разрешений, shouldShowRequestPermissionRationale вернет false
  2. если запретить разрешение с установленным флажком «Никогда не спрашивать снова», shouldShowRequestPermissionRationale вернет false

Затем я столкнулся с проблемой, как отличить эти два случая? Я имею в виду, в следующем фрагменте кода от разработчика Android:

 if (ContextCompat.checkSelfPermission(
    CONTEXT, Manifest.permission.REQUESTED_PERMISSION) ==
    PackageManager.PERMISSION_GRANTED) {
    // You can use the API that requires the permission.
    performAction(...);
} else if (shouldShowRequestPermissionRationale(...)) {
    // In an educational UI, explain to the user why your app requires this
    // permission for a specific feature to behave as expected. In this UI,
    // include a "cancel" or "no thanks" button that allows the user to
    // continue using your app without granting the permission.
    showInContextUI(...);
} else {
    // You can directly ask for the permission.
    requestPermissions(CONTEXT,
            new String[] { Manifest.permission.REQUESTED_PERMISSION },
            REQUEST_CODE);
}
 

В случае 2, хотя в разрешении отказано с помощью «Никогда не спрашивать снова», код по-прежнему вызывает requestPermissions?