Detectar si se puede solicitar un permiso o denegarlo permanentemente

Situació
Uno de mis fragmentos accede a la cámara. Por supuesto, primero debo verificar el permiso en mi actividad, antes de redirigirlo. Si el usuario niega el permiso, la Actividad finaliza y lo redirige a la Actividad anterior en la que estaba.
Adicionalmente, me gustaría mostrar un fragmento diferente cuando se inicia la Actividad y detecta que el permiso fue denegado permanentemente. (La pequeña casilla de verificación "Nunca volver a preguntar" en el cuadro de diálogo de permisos de Android)

Problem
No pude encontrar una manera adecuada de detectar, si el permiso solo fue denegado una vez o si la casilla de verificación "No volver a preguntar" fue marcada la última vez y se le negó el permiso permanentemente.
Tenga en cuenta que no quiero saber eso en la devolución de llamada onRequestPermissionsResult. Necesito saber en onCreate of my Activity si el permiso actualmente está otorgado, denegado o denegado permanentemente.

Lo que probé
ActivityCompat#shouldShowRequestPermissionRationale parece detectar si el permiso ha sido denegado en el pasado o no. También devuelve verdadero si se ha denegado solo una vez en lugar de permanentemente.

PermissionChecker#checkPermission() no pareció notar ninguna diferencia entre el estado de permiso permanente y solo una vez denegado.

Pregunt
¿Hay alguna forma de detectar si un permiso es denegado pero aún se puede solicitar o si se lo niega permanentemente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta