onActivityResult siempre obtiene Activity.RESULT_CANCELED cuando toma la imagen en FragmentActivity

Tengo esta situación: dos Fragmentos dentro de una FragmentActivity. Tengo un método para tomar fotos y me gustaría obtener los resultados de onActivityResult . El problema es que el método onActivityResult siempre tiene Activity.RESULT_CANCELED . Yo estaba usando los mismos métodos en una actividad antes y estaban funcionando bien. El código está debajo (los comentarios están en portugués pero pienso que no puede ser un problema porque el código aquí es absolutamente simple). He visto una pregunta similar pero nadie me podría ayudar.

 public class CameraActivity extends FragmentActivity implements OnClickListener { private static final String TAG = "CameraActivity"; Fragment fragmentToqueParaTirarFoto; Fragment fragmentFotoCarregada; // Constantes para abrir activity de tirar foto e escolher foto do álbum private static final int TAKE_PICTURE = 1; String caminhoDaPastaDeFotos = ""; String arquivoFullPath = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.camera, menu); return true; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult( requestCode, resultCode, data); if (requestCode == TAKE_PICTURE) { if (resultCode == Activity.RESULT_OK) { /*********************************** CODE NEVER REACHED THIS POINT. ***********************************/ Log.d(TAG, "Result OK"); } if (resultCode == Activity.RESULT_CANCELED) { Log.d(TAG, "Result Cancel"); } } } /** * Função que abre intent para tirar foto. É adicionado parâmetro extra */ public void takePicture() { // Intent que abre camera. Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); // Novo nome do arquivo arquivoFullPath = newFileName(); String identificadorDeArquivo = "file://"; Uri outputFileUri = Uri.parse(identificadorDeArquivo + arquivoFullPath); // Adiciona nome absoluto do arquivo da foto tirada intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); // Inicia intent com camera. startActivityForResult(intent, TAKE_PICTURE); } /** * Gera nome do arquivo com o mesmo formato de nome gerado pelo Android. O * formato do nome é IMG_ + yyyyMMdd_HHmmss + .jpg onde yyyyMMdd_HHmmss é a * hora local. * * @return Retorna nome absoluto para imagem usando formato: IMG_ + * yyyyMMdd_HHmmss + .jpg */ @SuppressLint("SimpleDateFormat") private String newFileName() { // Formato de data DateFormat dateFormat = new SimpleDateFormat(getResources().getString( R.string.string_formato_de_data_para_nome_do_arquivo)); // Data atual Date date = new Date(); // Nome do arquivo String newFileName = "IMG_" + dateFormat.format(date).toString() + ".jpg"; // Nome absoluto para a nova imagem gerada. arquivoFullPath = caminhoDaPastaDeFotos + newFileName; return arquivoFullPath; } } 

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.