Intención de cámara de Android con Crop

He estado tratando de recortar y cambiar el tamaño de una imagen mientras tomo una foto con la intención de la cámara, pero no entiendo lo que estoy haciendo mal aquí: no puedo obtener los datos de la imagen recortada incluso si el archivo se guarda correctamente en el teléfono

...
public class Add extends Activity {
    private String imageFilePath;
    ...
    protected void onCreate(Bundle savedInstanceState) {
    ...
        imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp/" + String.valueOf(System.currentTimeMillis()) + ".jpg";
        imageFile = new File(imageFilePath);
        imageFileUri = Uri.fromFile(imageFile);
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
        intent.putExtra("crop", "true");
        intent.putExtra("outputX", 600);
        intent.putExtra("outputY", 600);
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("scale", true);
        intent.putExtra("return-data", true); 
        startActivityForResult(intent, 0);
        ...
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case 0 : {    
        Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath);
    }
    }
}

Si usointent.putExtra("crop", "true");, imageFilePath devuelve nulo, si no devuelve el archivo correcto.

¡Gracias por tu ayuda

Respuestas a la pregunta(4)

Su respuesta a la pregunta