onRequestPermissionsResult no se llama en el fragmento de diálogo

He comenzado a trabajar con el permiso de ejecución de Android M. Aquí estoy enfrentando el problema de que sirequestPermissions se llama desdeDialog Fragment clase entoncesonRequestPermissionsResult no ser llamado de la mismaDialog fragment clase. Pero sirequestPermissions se llama desdeActivity clase oFragment clase entoncesonRequestPermissionsResult Se llama al método en la misma clase.

Aquí está mi código de muestra:

public class ContactPickerDialog extends DialogFragment {
    private static final int READ_CONTACTS_REQUEST_CODE = 12;
    private Context mContext;

    private void loadContact() {
        if(hasPermission(mContext, Manifest.permission.READ_CONTACTS)){
            new ContactSyncTask().execute();
        } else {
            this.requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, READ_CONTACTS_REQUEST_CODE);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        Logger.d("TAG", "dialog onRequestPermissionsResult");
        switch (requestCode) {
            case READ_CONTACTS_REQUEST_CODE:
                // Check Permissions Granted or not
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    new ContactSyncTask().execute();
                } else {
                    // Permission Denied
                    Toast.makeText(getActivity(), "Read contact permission is denied", Toast.LENGTH_SHORT).show();
                }
            break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

    private static boolean hasPermission(Context context, String permission){
        return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
    }

} 

Aquí en el código que estoy llamandorequestPermissions método deDialog Fragment clase. Así que espero obtener resultados en la misma clase.

Cualquier ayuda es apreciada. ¡Gracias por adelantado!

EDITAR: Aquí estoy agregando más detalles, para que sea más útil para los demás. Anteriormente he usado getChildFragmentManager () para mostrar el DialogFragment.

ContactPickerDialog dialog = new ContactPickerDialog();
dialog.show(getChildFragmentManager(), "Contact Picker");

Pero como@CommonWare me pidió que usara actividad para mostrar el DialogFragment. He realizado los siguientes cambios y funciona.

ContactPickerDialog dialog = new ContactPickerDialog();
dialog.show(getActivity().getSupportFragmentManager(), "Contact Picker");

Respuestas a la pregunta(10)

Su respuesta a la pregunta