Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 27/03/13, 10:04:03
Avatar de Dild0
Dild0 Dild0 no está en línea
Usuario muy activo
Mensajes: 860
 
Fecha de registro: may 2009
Mensajes: 860
Versión de ROM: CyanogenMOD
Tu operador: Pepephone
Mencionado: 3 comentarios
Tagged: 0 hilos
Problema con intent

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.

[PHP]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);

}
}); [/PHP]

[PHP]

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;
}
[/PHP]

[PHP]
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);
}

}[/PHP]
Responder Con Cita


  #2  
Viejo 27/03/13, 10:27:28
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Poniendo el EnviaMail en el onActivityResult para el código 0, que el que le has puesto al de tomar la foto.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 27/03/13, 11:49:23
Avatar de Dild0
Dild0 Dild0 no está en línea
Usuario muy activo
Mensajes: 860
 
Fecha de registro: may 2009
Mensajes: 860
Versión de ROM: CyanogenMOD
Tu operador: Pepephone
Mencionado: 3 comentarios
Tagged: 0 hilos
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

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

Última edición por Dild0 Día 27/03/13 a las 11:55:07
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 06:26:44 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007