Permissões do Android M: onRequestPermissionsResult () não sendo chamado

Estou atualizando nosso aplicativo para usar o novo sistema M Permissões. Está tudo funcionando além do onRequestPermissionsResult (). Preciso verificar uma permissão pressionando o botão e, se for bem-sucedida, envie uma mensagem de texto. Quando concedo permissão para fazê-lo, a caixa de diálogo é fechada, mas não aciona o envio de texto até que eu pressione o botão novamente.

Eu depurei e definai pontos de interrupção no método onRequestPermissionsResult (), mas ele nunca entra nele.

Este método é chamado primeiro:

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

E então meu retorno de chamada fica assim:

    @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);
                }
            }
        }
    }
}

Alguém já teve um problema semelhante? Agradeço qualquer ajuda com isso. obrigado

questionAnswers(22)

yourAnswerToTheQuestion