Permisos de Android M: no se llama a onRequestPermissionsResult ()

Estoy actualizando nuestra aplicación para usar el nuevo sistema de permisos M. Todo funciona además de onRequestPermissionsResult (). Necesito verificar un permiso al presionar un botón y, si tiene éxito, enviar un mensaje de texto. Cuando otorgo permiso para hacerlo, el cuadro de diálogo se cierra, pero no activa el envío de texto hasta que presione el botón nuevamente.

He depurado y establecido puntos de interrupción en el método onRequestPermissionsResult () pero nunca entra en él.

Este método se llama primero:

    private void askForPermission() {
    String[] permissions = new String[]{Manifest.permission.SEND_SMS};
    ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE);
}

Y luego mi devolución de llamada se ve así:

    @Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == PERMISSIONS_CODE) {
        for (int i = 0; i < permissions.length; i++) {
            String permission = permissions[i];
            int grantResult = grantResults[i];

            if (permission.equals(Manifest.permission.SEND_SMS)) {
                if (grantResult == PackageManager.PERMISSION_GRANTED) {
                    onPPSButtonPress();
                } else {
                    requestPermissions(new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_CODE);
                }
            }
        }
    }
}

¿Alguien ha tenido un problema similar? Agradezco cualquier ayuda con esto. Gracias

Respuestas a la pregunta(22)

Su respuesta a la pregunta