PDA

Ver la Versión Completa : [ CONSULTA ] Problema con intent


Dild0
27/03/13, 10:04:03
Hola buenas!! Os comento estoy creando una aplicación la cual una de sus funcionalidades es solicitar hacer una foto y enviarla por correo. La funcionalidad comentada quiero que se ejecute toda en un solo botón.

Ahora viene el problema, al pulsar el boton se lanza el intent de captura de imagen y de seguido el intent de enviar por mail, pero es tan rapido que antes de hacer la foto ya se abre el correo. Alguna idea para que no lance el intent del correo hasta q la respuesta de la camara sea favorable?.

Este es mi código.

foto = (Button) findViewById(R.id.btn_foto);

foto.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
path = TomarFoto(null);
EnviaMail(null, path);

}
});



public String TomarFoto(View v) {
// Lanza la aplicacion de camara, hace una foto, la guarda en sd y
// retorna la ruta.

String fotoPath = new String();
File folder = new File(Environment.getExternalStorageDirectory()
+ "/ruta/images");

if (!folder.exists()) {
folder.mkdirs();
}
fotoPath = Environment.getExternalStorageDirectory()
+ "/ruta/images/FI" + HoraSistema() + ".jpg";

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CA PTURE);
Uri output = Uri.fromFile(new File(fotoPath));
i.putExtra(MediaStore.EXTRA_OUTPUT, output);
startActivityForResult(i, 0);
return fotoPath;
}



public void EnviaMail(View v, String path) {

Intent itSend = new Intent(android.content.Intent.ACTION_SEND);
itSend.putExtra(android.content.Intent.EXTRA_EMAIL ,
new String[] { "[email protected]" });
itSend.putExtra(android.content.Intent.EXTRA_SUBJE CT,
"asunto");
itSend.putExtra(android.content.Intent.EXTRA_TEXT,
"contenido");

Uri uri = Uri.fromFile(new File(path));
itSend.putExtra(Intent.EXTRA_STREAM, uri);
itSend.setType("image/jpg");
startActivity(itSend);
}

}

kriogeN
27/03/13, 10:27:28
Poniendo el EnviaMail en el onActivityResult para el código 0, que el que le has puesto al de tomar la foto.

Dild0
27/03/13, 11:49:23
Perfecto gracias, estoy aprendiendo y se me escapan aun cosillas basicas, era una tontería pero me vakle de mucho para aprender :)

Ya funciona!!!

sl2

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
EnviaMail(null, path);
}
}
}