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; } }
- Opengl fondo transparente y Vista previa de cámara no les gusta texturing
- Espejo de la cámara frente a frente en Android
- La cámara no se guarda después de tomar la fotografía
- ¿Cómo maneja el android las diferencias entre el tamaño de vista previa y el tamaño real de SufaceView?
- Android definiendo el enfoque manual al tocar
- ¿Debo usar Camera2 o Camera APIs para Android?
- Obtener la rotación de ExifInterface siempre devuelve 0
- Cambiar la cámara trasera / frontal en marcha
- Android 5.0 Regiones de recorte incorrectas en la superficie de vista previa y capturada imagen fija
- Capturar un video usando cámara2 y MediaRecorder
- Lectura de código QR con cámara - Android
- Android - ¿Cómo puedo despertar el teléfono de un sueño duro para tomar una foto?
- Android ACTION_IMAGE_CAPTURE a veces no llama aActivityResult
- Android WebView ZoomManager.onSizeChanged NullPointerException
- PhoneGap – evento de modo de suspensión del dispositivo